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

1つのクエリでMySQLの複数の行をカウントする

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

    item_idと操作ごとに1行のテーブルを返します 、3つの列を含みます:item_id、操作タイプ、およびそのitem_idを持つ行数。

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

    すべてのitem_idが必要な場合は、WHEREを省略できます。また、COUNT(*)で注文して、最も人気のあるものなどを入手できます。探しているものやデータの使用方法によって異なります。

    列を隣り合わせにする場合 、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. UbuntuでMySQLのSSL/TLSを有効にする方法

    2. MySQLで行をフィルタリングする句

    3. JavaScriptプロキシを使用してSQLiteでブール値を処理する方法

    4. .NETからSSISパッケージを実行する方法は?