-1
我的交易與TRANSACTIONTIME列的表:的SQLServer 2008 - 時間範圍組
如何編寫一個查詢,讓我的交易數量在某些之間發生了一天時間段。例如,從早上9點到晚上9點,間隔3小時?
樣本輸出:
我的交易與TRANSACTIONTIME列的表:的SQLServer 2008 - 時間範圍組
如何編寫一個查詢,讓我的交易數量在某些之間發生了一天時間段。例如,從早上9點到晚上9點,間隔3小時?
樣本輸出:
不太清楚你想做的事,但是這應該讓你開始 - 總計按小時細分的列表:
SELECT HOUR(TransactionTime), COUNT(*) AS Num_Transactions
FROM YOUR_TABLE_NAME
GROUP BY HOUR(TransactionTime)
如果你想每3小時一次,然後使用HOUR(TransactionTime)/3
爲您的團隊 - 就像平常一樣。
感謝您的所有輸入。我推導出以下解決方案:
SELECT Datename(weekday, time) AS weekday,
((Datepart(hour, time)/3) - 3) AS segment,
Count(*) AS num_transactions
FROM "transaction"
GROUP BY Datename(weekday, time),
((Datepart(hour, time)/3) - 3)
ORDER BY CASE Datename(weekday, time)
WHEN 'Monday' THEN 1
WHEN 'Tuesday' THEN 2
WHEN 'Wednesday' THEN 3
WHEN 'Thursday' THEN 4
WHEN 'Friday' THEN 5
WHEN 'Saturday' THEN 6
WHEN 'Sunday' THEN 7
END,
((Datepart(hour, time)/3) - 3);
你的例子沒有意義 - 段是什麼? – Hogan
到目前爲止您嘗試了什麼查詢?基本上你需要做的是計算它落入和分組的時間間隔。 – Rabbit
您可以使用ROW_NUMBER()OVER(PARTITION BY ...)生成「Segment」列。 –