-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”列。 –