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

sqlは、1つのクエリで合計数とフィルター処理された数を取得します

    Case .. When pointsかどうかを確認します 特定の行で10を超えている場合は、それに応じてカウントします(Sum()を使用) 。

    SELECT COUNT(*) as total, 
           SUM(CASE WHEN points > 10 THEN 1 ELSE 0 END) AS winners, 
           team 
    FROM users 
    GROUP BY team
    

    MySQLでは、としてさらに短縮できます。 Sum() 関数は、条件演算子/関数の結果を0/1に単純にキャストできます(それぞれfalse / trueの場合):

    SELECT COUNT(*) as total, 
           SUM(points > 10) AS winners, 
           team 
    FROM users 
    GROUP BY team
    


    1. Django-ForeignKeyリレーションをOneToOneに変更します

    2. SQL Serverの「ゼロ除算エラー」を修正する5つの方法(メッセージ8134)

    3. SQLite JSON_QUOTE()

    4. Mysqlの行サイズの変更制限が大きすぎます