sql >> データベース >  >> RDS >> Mysql

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;
    

    編集:個別の列として

    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. Forceを使用してWindowsに大きなMySQL.sqlファイルをインポートする

    2. d3ビジュアライゼーションでのMySQLデータベースへのアクセス

    3. ExplainステートメントでのMySQLkey_lenの理解

    4. MariaDB Enterpriseとは何ですか?ClusterControlで管理する方法は?