我正在建立一个带有GROUP BY
子句的查询,该子句需要能够仅基于特定条件对记录进行计数(例如,仅对某个列值等于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
该COUNTIF()
行显然由于没有调用本机SQL函数COUNTIF
而失败,但是这里的想法是确定MyColumn的所有值为'1'的行的百分比。
关于如何在MS SQL 2005环境中正确实现这一点的任何想法?
ISNULL
,而是你可以做CASE WHEN myColumn IS NULL
,或使用ifnull
(stackoverflow.com/a/799406/1861346)