我正在嘗試編寫一個T-SQL查詢,查找某個表在一段時間內的條目數量,然後按分鐘(條目/分鐘)對它們進行分組。 但我不能讓它顯示0條目的分鐘。按日期時間分鐘分組 - 在數據庫中顯示0條記錄的分鐘數?
我的查詢是這樣的:
select
[Minute],
Files
from
(
select
(DATEDIFF(MINUTE, '2017-02-02 17:00:00.000', RegTime)/1) as [Minute] ,
count(*) as Files
from TransferLog
WHERE RegTime BETWEEN '2017-02-02 17:00:00.000' AND '2017-02-03 04:00:00.000'
group BY
(DATEDIFF(MINUTE, '2017-02-02 17:00:00.000', RegTime)/1)
) x order by [Minute]
什麼想法?
Edit1。例外輸出將顯示分鐘,表中沒有條目。另外,當發生這種情況時,查詢是不可用的,因爲我無法知道哪一分鐘沒有數據。例如,如果我需要800分鐘的數據,但20分鐘內沒有數據寫入表格,則只會顯示780分鐘的數據。無論如何要爲此目的對數據進行排序或修改查詢嗎?
Expected output:
Minute | Files
0 685
1 0
2 672
3 0
4 415
5 434
6 746
-
Current Output:
Minute | Files
0 685
1 672
2 415
3 434
4 746
中的每一行的結果是從您的輸入表的一行或多行產生。你不會得到零的行,因爲......沒有行來提供日期時間值。 –
您可能需要加入日曆表才能記入差異未顯示在數據集中的分鐘數。 –
請發佈您的表格架構和預期輸出。 – McNets