Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Đếm số lượng người dùng trong một độ tuổi nhất định dựa trên ngày sinh

Chuyển đổi ngày sinh thành một tên phạm vi, sau đó thực hiện một nhóm theo số đó với số lượng:

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

Bằng cách sử dụng truy vấn con để chuyển đổi ngày sinh thành một phạm vi, phép tính chỉ cần được thực hiện một lần cho mỗi hàng, do đó, nó sẽ hoạt động tốt hơn. Và nó dễ đọc hơn.

Ngoài ra, bằng cách tránh các UNION, truy vấn có thể được thực hiện trong một lần chuyển qua bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL đệ quy để chia CSV thành các hàng trong bảng

  2. Truy vấn SQL để tìm mức lương cao nhất thứ N từ bảng lương

  3. Làm thế nào để viết một foreach trong SQL Server?

  4. Lưu trữ các kiểu dữ liệu nhị phân trong SQL Server

  5. CHÈN hoặc CẬP NHẬT bảng từ một bảng khác có khóa chính tổng hợp