Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đếm nhiều hàng trong MySQL trong một truy vấn

SELECT item_id, operation, COUNT(*) 
FROM stats 
WHERE operation IN ('view','purchase','download') 
GROUP BY item_id, operation

Sẽ trả về một bảng có một dòng cho mỗi item_id và thao tác , chứa ba cột:item_id, loại hoạt động và số hàng có item_id đó.

1 view 3
1 purchase 5
2 download 7
3 download 1

Bạn có thể bỏ qua WHERE nếu bạn muốn tất cả item_id's và bạn có thể đặt hàng ở COUNT (*) để nhận được món phổ biến nhất hoặc thứ gì đó. Phụ thuộc vào những gì bạn đang tìm kiếm hoặc cách bạn sử dụng dữ liệu.

Nếu bạn muốn các cột bên cạnh eachother , sử dụng IF:

SELECT s1.item_id, SUM( IF( s1.operation = 'view', 1, 0 ) ) views, SUM( IF( s1.operation = 'download', 1, 0 ) ) downloads, SUM( IF( s1.operation = 'purchase', 1, 0 ) ) purchases
FROM stats s1
GROUP BY s1.item_id

item_id | views | downloads | purchases
1 | 3 | 0 | 5
2 | 0 | 7 | 0
3 | 0 | 1 | 0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thêm cột cuối cùng trong bảng mysql

  2. Giải pháp để tìm các bản ghi trùng lặp liên quan đến STI và mối quan hệ cha mẹ-con cái

  3. Cập nhật MySQL nếu giá trị lớn hơn giá trị hiện tại đó

  4. tìm tối đa tập hợp các cột cho nhiều hàng trong truy vấn mysql

  5. MySQL Chọn các hàng có cột dấu thời gian từ bây giờ đến 10 phút trước