我正在构建一个带有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()
行显然失败了,因为没有名为COUNTIF
的本机SQL函数,但这里的 idea 是确定MyColumn值为"1"的所有行的百分比.
关于如何在MS SQL 2005环境中正确实现这一点,您有什么 idea 吗?