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

Đếm có điều kiện Mysql

SELECT 
   l.product_id, t.asset_type_id, COUNT(*)
FROM
   lookup l
   CROSS JOIN
   (SELECT 1 AS asset_type_id UNION ALL SELECT 2 UNION ALL SELECT 3) t
   LEFT JOIN
   assets a ON l.asset_id = a.asset_id AND t.asset_type_id = a.asset_type_id
GROUP BY
   l.product_id, t.asset_type_id;

Chỉnh sửa:dưới dạng các cột riêng biệt

SELECT 
   l.product_id, 
   COUNT(CASE WHEN a.asset_type_id = 1 THEN 1 END) AS asset_count_image,
   COUNT(CASE WHEN a.asset_type_id = 2 THEN 1 END) AS asset_count_video,
   COUNT(CASE WHEN a.asset_type_id = 3 THEN 1 END) AS asset_count_sound
FROM
   lookup l
   LEFT JOIN
   assets a1 ON l.asset_id = a.asset_id AND a.asset_type_id IN (1, 2, 3)
GROUP BY
   l.product_id;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql, PHP, tìm kiếm nhiều từ

  2. Cách nhanh nhất để chèn đối tượng nếu nó không tồn tại với SQLAlchemy

  3. Tạo truy vấn SQL dựa trên các tham số URL

  4. Có bất kỳ triển khai CachedRowSet nào tốt ngoài Sun độc quyền không?

  5. Tôi có thể tham số hóa tên bảng trong một câu lệnh đã soạn sẵn không?