gpt4 book ai didi

sql-server - SQL GROUP BY with COUNTS - 如何在计数为 0 时始终返回一行

转载 作者:行者123 更新时间:2023-12-04 14:42:51 25 4
gpt4 key购买 nike

在我的 previous question 之后,我现在有以下 SQL:

SELECT CONVERT(VARCHAR(10), Date, 120) AS Date, 
COUNT(*) AS Total,
COUNT(CASE
WHEN ErrorCode = -2 THEN 1
END) AS TimeOutErrors,
COUNT(CASE
WHEN ErrorCode IS NOT NULL THEN 1
END) AS TotalErrors
FROM Table
WHERE Type = 7
AND Date = CONVERT(VARCHAR(10), Dateadd(d, -1, Getdate()), 120)
GROUP BY Date

它返回昨天所有类型为 7 的记录,错误计数为 -2,错误计数为总错误。

但是,如果昨天没有类型 7 的记录,则返回 0 行

在这种情况下是否可以让它返回全 0?

即:

Date       Total TimeOutErrors TotalErrors
---------- ----- ------------- -----------
2010-12-06 0 0 0

bcp 每天使用 SQL Agent 解析此查询以保存到日志文件

最佳答案

你需要一个OUTER JOIN

...
FROM
(SELECT CONVERT(VARCHAR(10), Dateadd(d, -1, Getdate()), 120) AS [Date]) D
LEFT OUTER JOIN Table T
ON D.[Date] = T.[Date] AND T.Type = 7
GROUP BY D.[Date]

关于sql-server - SQL GROUP BY with COUNTS - 如何在计数为 0 时始终返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4377054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com