这个question帮助我进入了那里:
SELECT
[Day],
[Hour],
[DayN],
AVG(Totals) AS [Avg]
FROM
(
SELECT
w = DATEDIFF(WEEK, 0, ForDateTime),
[Day] = DATENAME(WEEKDAY, ForDateTime),
[DayN] = DATEPART(WEEKDAY, ForDateTime),
[Hour] = DATEPART(HOUR, ForDateTime),
Totals = COUNT(*)
FROM
#Visit
GROUP BY
DATEDIFF(WEEK, 0, ForDateTime),
DATENAME(WEEKDAY, ForDateTime),
DATEPART(WEEKDAY, ForDateTime),
DATEPART(HOUR, ForDateTime)
) AS q
GROUP BY
[Day],
[Hour],
[DayN]
ORDER BY
DayN;
如何更改此值,而不是按小时显示平均值,例如9、10、11、12等。它一直显示到09:30-10:30,10:30-11:30,11:30-12:30,12:30-13:30一直到23:30。
答案 0 :(得分:2)
一种简单的方法是将ForDateTime
偏移30分钟。基本上,您只需要在查询中将ForDateTime
的每次出现替换为dateadd(minute, 30, ForDateTime)
。
在结果集中,Hour
9
为您提供了从8:30到9:30的时隙,依此类推。