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

Bagaimana cara mendapatkan jumlah orang berdasarkan kelompok usia menggunakan kueri SQL di database Oracle?

Pertama, perhitungan usia Anda salah. Anda hampir pasti ingin mengukur bulan di antara dua tanggal daripada berharap bahwa membaginya dengan 365,25 cukup dekat

trunc( months_between( sysdate, p.birth_date )/ 12 )

Kedua, jika Anda ingin mengelompokkan berdasarkan rentang, Anda hanya perlu memilih rentang dalam case pernyataan dan kelompokkan dengan itu

SELECT (case when age <= 5
             then 'age <= 5'
             when age > 5 and age <= 10
             then 'age > 5 and age <= 10'
             else 'age > 10'
         end) bucket,
       count(*)
  FROM( SELECT trunc( months_between( sysdate, p.birth_date )/ 12 ) age
          FROM person p )
 GROUP BY (case when age <= 5
                then 'age <= 5'
                when age > 5 and age <= 10
                then 'age > 5 and age <= 10'
                else 'age > 10'
            end)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menambahkan kunci asing ke tabel yang ada

  2. SQL:Apakah mungkin untuk 'mengelompokkan menurut' menurut hasil fungsi 'suka'?

  3. Menggunakan CONTINUE In Loops Untuk Melanjutkan Kontrol Di Oracle

  4. Penyimpanan Pengumpulan Data Oracle Umum

  5. Konversi tanggal ke string Oracle