sql >> Databáze >  >> RDS >> Mysql

Podmíněný počet 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;

Upravit:jako samostatné sloupce

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. Jak přidat nové řádky do jTable z databáze při kliknutí na tlačítko bez vymazání existujících řádků

  2. Funkce SUM() v MySQL

  3. Jak použít regulární výraz na výsledky dílčího dotazu?

  4. ladit dotaz mysqli pomocí nebo zemřít mysqli_error