Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Terapkan fungsi COUNT pada subgrup grup

Tidak, tidak perlu fungsi analitik; mereka sulit untuk memiliki kueri yang sama dengan fungsi agregat.

Anda sedang mencari case pernyataan lagi, Anda hanya perlu memasukkannya ke dalam GROUP BY.

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

Perhatikan bahwa saya telah mengubah count(case when...) . Anda ke sum() . Ini karena Anda menggunakan boolean 1/0 jadi ini akan bekerja dengan cara yang sama tetapi jauh lebih bersih.

Untuk alasan yang sama, saya mengabaikan between Anda dalam perhitungan gaji Anda; tidak ada keperluan khusus karena jika gaji lebih besar dari 2000 KASUS pertama sudah terpenuhi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana melakukan penyetelan sql di Oracle

  2. Enkripsi Oracle Advanced Security dengan konfigurasi Spring JDBC xml

  3. Fungsi TO_CHAR(datetime) di Oracle

  4. Bagaimana cara mengetahui kapan prosedur tersimpan terakhir diubah atau dikompilasi di Oracle?

  5. Oracle Query untuk menggulung QTY berdasarkan Tahun - hanya 3 tahun terakhir