在下面的示例查询中,我正确地按小时计算计数,但我需要它返回一天中的所有小时,并为没有数据的小时显示 0。有没有一种简单的方法可以让我做到这一点?
这是我的 SQL:
IF OBJECT_ID(N'tempdb..#Temp') IS NOT NULL DROP TABLE #Temp;
CREATE TABLE #Temp (TempNumber NVARCHAR(50),TempDateTime DATETIME2)
INSERT INTO #Temp (TempNumber, TempDateTime)
VALUES ('11287233600','2019-08-20 08:27:08.047')
INSERT INTO #Temp (TempNumber, TempDateTime)
VALUES ('11287233601','2019-08-20 08:32:08.047')
INSERT INTO #Temp (TempNumber, TempDateTime)
VALUES ('11287233602','2019-08-20 10:27:08.047')
INSERT INTO #Temp (TempNumber, TempDateTime)
VALUES ('11287233603','2019-08-20 12:27:08.047')
INSERT INTO #Temp (TempNumber, TempDateTime)
VALUES ('11287233604','2019-08-20 16:27:08.047')
INSERT INTO #Temp (TempNumber, TempDateTime)
VALUES ('11287233605','2019-08-20 23:27:08.047')
SELECT DATEPART(hh,TempDateTime) AS TempDatePart,
COUNT(DISTINCT TempNumber) AS RecordCount
FROM #Temp
GROUP BY DATEPART(hh, TempDateTime) …Run Code Online (Sandbox Code Playgroud) sql-server ×1