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

クエリから結果を取得する

    SUM/CASEを使用できます または(SUM/DECODE 必要に応じて)

    Select
       COUNT(*) TOTAL_RECORDS  ,
       SUM(case when status = 'PENDING' then 1 else 0 END) TOTAL_PENDING, 
       SUM(case when status = 'NOT_REQUIRED' then 1 else 0 END) TOTAL_NOT_REQUIRED, 
       SUM(case when status = 'ERROR' then 1 else 0 END) TOTAL_ERROR
    
    
    FROM temp25
    

    ここで機能することを確認してください

    ピボットを使用することもできますが、カウント(*)の取得は少し醜いです

    WITH 
    COUNTS AS(
    select * 
    from (
       select status
       from TEMP25 t
    )
    pivot 
    (
       count(status)
       for status in ('PENDING' AS TOTAL_PENDING,
                      'NOT_REQUIRED' AS TOTAL_NOT_REQUIRED,
                      'ERROR' AS TOTAL_ERROR)
    ))
    
    
    SELECT COUNT(*) total_records, 
           total_pending, 
           total_not_required, 
           total_error 
    FROM   temp25, 
           counts 
    GROUP  BY total_pending, 
              total_not_required, 
              total_error 
    

    ピボットバージョン



    1. Oracle参照カーソルを返し、複数の結果を追加する

    2. Mysqlは最新の2つの日付でアイテムを注文します

    3. テーブル(col1、col2)の値に挿入する方法(table2からmax(id)を選択し、table3からidを選択します); ?

    4. Railsが(疑似)ネストされたトランザクションでロールバックを無視するのはなぜですか?