Tôi đang xây dựng một truy vấn với một GROUP BYmệ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 NULLhoặc sử dụngifnull( stackoverflow.com/a/799406/1861346 )