我發現了類似於我想要的東西here,但它沒有給出完全正確的輸出,而且我正在一個愚蠢的時刻,試圖想出正確的解決方案...SQL選擇每天總計數,但按日期和小時分組(每小時運行總計)
我們有一個AVS服務器(實時帳戶驗證服務,但這是無關緊要的),我想知道有多少請求今天(或任何其他日子),在每個小時。例如,假設在上午8點到9點之間發出了100個請求,並且在9點到10點之間發出了50個請求。輸出應該有在8AM,和在9AM,但低於我的查詢被顯示的請求的數量在每一個小時來代替。
我可以看到它爲什麼這樣做...它通過小時分組,因此它顯示我在每個小時的要求,但是這不是我想要的東西,這是每小時一個運行總計。 (所以我可以每天運行它,看看請求的數量看起來像昨天這個時間,等等......並且指出這是一個緩慢還是快速的日子。)我該怎麼做?
DECLARE @CurrentDate DATETIME = '14 nov 2014'
SELECT
CAST(DateCreated AS DATE) [Date],
DATEPART(hour,DateCreated) [Hour],
COUNT(ID) [Requests]
FROM Request
WHERE
DateCreated >= @CurrentDate AND Request.DateCreated < DATEADD(DAY, 1, @CurrentDate)
GROUP BY
CAST(DateCreated AS DATE),
DATEPART(hour, DateCreated)
ORDER BY
CAST(DateCreated AS DATE)
是Microsoft SQL服務器? Msg 102,Level 15,State 1,Line 15 ')'附近語法不正確。 – 2014-11-14 12:48:54
如果我刪除了第15行的右括號並將[請求]更改爲[請求],它可以正常工作,但並不能完全滿足我的要求。它給出了單個日期,小時值和請求,但是如果我爲昨天的日期運行它,它會給我當天的總請求數。 – 2014-11-14 12:51:04
編輯修復了在第4行中爲'@CurrentDate'修正錯字 - 交換'getdate()' – paul 2014-11-14 13:03:47