【发布时间】:2010-10-09 14:50:57
【问题描述】:
我正在构建一个带有 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 函数,但这里的想法是确定 MyColumn 值为“1”的所有行的百分比。
关于如何在 MS SQL 2005 环境中正确实现这一点有什么想法吗?
【问题讨论】:
标签: sql sql-server-2005