Tôi đang xây dựng một truy vấn với một GROUP BY
mệnh đề cần khả năng đếm các bản ghi chỉ dựa trên một điều kiện nhất định (ví dụ: chỉ đếm các bản ghi trong đó một giá trị cột nhất định bằng 1).
SELECT UID,
COUNT(UID) AS TotalRecords,
SUM(ContractDollars) AS ContractDollars,
(COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Get the average of all records that are 1
FROM dbo.AD_CurrentView
GROUP BY UID
HAVING SUM(ContractDollars) >= 500000
Các COUNTIF()
dòng rõ ràng là thất bại vì không có chức năng SQL bản địa gọi COUNTIF
, nhưng ý tưởng ở đây là để xác định tỷ lệ phần trăm của tất cả các hàng có giá trị '1' cho MyColumn.
Bạn có suy nghĩ gì về cách thực hiện đúng điều này trong môi trường MS SQL 2005 không?
ISNULL
, thay vào đó bạn có thể làmCASE WHEN myColumn IS NULL
hoặc sử dụngifnull
( stackoverflow.com/a/799406/1861346 )