【发布时间】:2011-04-15 18:24:42
【问题描述】:
您能否在带有 HAVING 子句的查询中使用 COUNT 以使 COUNT 返回行数?当我尝试时,我会计算 ID 出现在表中的次数。这是查询:
SELECT col_appid, min(col_payment_issued_date) as PayDate
FROM tbl_ui_paymentstubs
WHERE isnull(col_payment_amount,0) > 0
GROUP BY col_appid
HAVING min(col_payment_issued_date) >= '09/01/2010' and min(col_payment_issued_date) <= '09/30/2010'
我返回 6 行,这很好,但我想只返回数字 6。
我发现我可以这样做,但想知道是否有另一种更优雅的方式:
WITH Claims_CTE(AppID, PayDate) as
(
SELECT col_appid, min(col_payment_issued_date) as PayDate
FROM tbl_ui_paymentstubs
WHERE isnull(col_payment_amount,0) > 0
GROUP BY col_appid
HAVING min(col_payment_issued_date) >= '09/01/2010' and min(col_payment_issued_date) <= '09/30/2010'
)
SELECT count(AppID) as Amount from Claims_CTE
`
【问题讨论】:
-
能否请您发布有关您的表结构的信息?我对你为什么在这个查询中使用 min 感到困惑......
-
我必须找到每个索赔的最早付款 (AppID),如果该付款是该索赔的第一笔付款并且属于当月,则计算它。
标签: sql sql-server count greatest-n-per-group