Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hitung jumlah pengguna dalam rentang usia tertentu berdasarkan tanggal lahir

Ubah tanggal lahir menjadi nama rentang, lalu buat grup dengan menghitungnya:

select
  case when age < 18 then 'Under 18'
       when age > 50 then  'Over 50'
       else  '18-50' end as range,
  count(*) as count
from (select DATEDIFF(yy, user_dob, GETDATE()) as age from Customer) c
group by case when age < 18 then 'Under 18'
   when age > 50 then  'Over 50'
   else  '18-50' end

Dengan menggunakan subquery untuk mengonversi tanggal lahir menjadi rentang, penghitungan hanya perlu dilakukan sekali per baris, sehingga performanya akan lebih baik. Dan lebih mudah dibaca.

Selain itu, dengan menghindari UNION, kueri dapat dieksekusi dalam satu kali melewati tabel.



  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 cara mengkonfigurasi proyek SSIS 2012 agar berjalan di bawah konfigurasi lingkungan yang berbeda?

  2. Konversikan .NET Ticks ke SQL Server DateTime

  3. saya memerlukan sp untuk memilih atau memperbarui tabel saya dan untuk itu saya harus memasukkan beberapa nilai untuk variabel tunggal bagaimana saya bisa melakukannya?

  4. Instal Ekstensi Agen Server SQL di Azure Data Studio

  5. Cara yang andal untuk memverifikasi prosedur tersimpan T-SQL