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

Mysqlのさまざまな条件からの行を合計する

    WITH ROLLUPを追加できます GROUP BYの句 このような状態:

    SELECT
      CASE WHEN CONDITION=1 THEN 'OK' ELSE 'BAD' END AS Status,
      SUM (CASE WHEN SIZE=10 THEN 1 ELSE 0 END) AS Small,
      SUM (CASE WHEN SIZE=20 THEN 1 ELSE 0 END) AS Medium,
      SUM (CASE WHEN SIZE=30 THEN 1 ELSE 0 END) AS Large,
    FROM mytable
    GROUP BY Status WITH ROLLUP
    

    これにより、次のような結果セットが生成されます。

    Status    Small    Medium    Large
    OK         1         2         1
    BAD        2         1         0
    [NULL]     3         3         1 
    

    Totalがないという動作を理解する必要があります [ステータス]列の値。代わりに、[ステータス]列にはNULL値があり、これがロールアップが行われる場所であることを示します。

    詳細については、次のドキュメントを参照してください: http ://dev.mysql.com/doc/refman/5.6/en/group-by-modifiers.html



    1. オンライン調査のためのデータベースモデル。パート4

    2. PHP 7でMySQLi拡張機能を有効にするにはどうすればよいですか?

    3. C#でSqlTransactionを使用する方法

    4. MySQLからJSONデータを取得する方法は?