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

GROUPBYを使用して統計を要約するOracleSQLクエリ

    select batch 
    ,      count(case when status=1 then 1 end) status1
    ,      count(case when status=2 then 1 end) status2
    ,      count(case when status=3 then 1 end) status3
    from   table
    group by batch;
    

    これは「ピボット」クエリと呼ばれることが多く、これらのクエリを動的に生成する方法についての記事を書いています私のブログ

    DECODEを使用したバージョン(Oracle固有ですが、それほど冗長ではありません):

    select batch 
    ,      count(decode(status,1,1)) status1
    ,      count(decode(status,2,1)) status2
    ,      count(decode(status,3,1)) status3
    from   table
    group by batch;
    


    1. MySQLホスト'::1'または'127.0.0.1'はこのMySQLサーバーへの接続を許可されていません

    2. MySQLに金額の値を格納するのに最適なデータ型

    3. Mysql Real EscapeStringPHP関数マイフィールドエントリに\を追加

    4. GROUPBY式のヘルプではないOracleSQLGROUP BY