我有一个包含以下信息的表,这是一个更大的数据集(大约 100k 行)的一个小子集每行都是一个传入请求,我想要做的是获取正确的查询以允许我显示数据使用开始时间作为每小时请求总数的折线图。并非所有小时都存在于数据集中,但仍需要表示为 0。最终目标是显示在谷歌可视化折线图上。
ID Duration Store Start End MacID
7 31 1 2013-06-08 07:46:10.000 2013-06-08 08:17:00.000 8532
4 2 1 2013-06-08 18:42:53.000 2013-06-08 18:44:06.000 8530
2 1 1 2013-06-08 14:31:20.000 2013-06-08 14:32:08.000 8529
11 213 1 2013-06-08 12:43:55.000 2013-06-08 16:16:11.000 8534
6 585 1 2013-06-08 14:03:58.000 2013-06-08 23:48:44.000 8531
28 287 1 2013-06-08 07:15:40.000 2013-06-08 12:02:10.000 8542
最终格式必须是
['Hour', 'Total'],
['00', 1000 ],
['01', 1170 ],
['02', 0],
['03', 1030]
我正在使用 sql 2012 和实体框架。我尝试了以下查询
SELECT CAST(start as date) AS ForDate,
DATEPART(hour,start) AS OnHour,
COUNT(*) AS Totals
from (
SELECT * from visits
GROUP BY CAST(start as date),
DATEPART(hour,start)
但是,它只带回有数据的几个小时的结果。获取数据的最佳方式是什么?SQL 或实体框架,我将如何去做?