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

グループのサブグループにCOUNT関数を適用します

    いいえ、分析関数は必要ありません。とにかく、集計関数と同じクエリに含めるのは困難です。

    caseを探しています もう一度言いますが、GROUPBYに入れるだけです。

    select hire_year
         , sum(married) as married
         , sum(certified) as certified
         , sum(religious) as religious
         , case when salary > 2000 then 'A'
                when salary >= 1000 then 'B'
                else 'C' end as salary_class
      from employees
     group by hire_year
         , case when salary > 2000 then 'A'
                when salary >= 1000 then 'B'
                else 'C' end
    

    count(case when...)を変更したことに注意してください sum()へ 。これは、ブール1/0を使用しているため、これは同じように機能しますが、はるかにクリーンです。

    同じ理由で、betweenを無視しました あなたの給与計算で;給与が2000を超えているかのように、特に必要はありません。最初のCASEはすでに実行されています。




    1. PostgresはCentOS6でPOSTGIS拡張エラーを作成します

    2. HQLクエリで条件付きで結合しますか?

    3. 数字が欠落することなく、連続して増加する数字の列を取得するにはどうすればよいですか?

    4. MySQLクエリの3時間の時間間隔