【发布时间】:2011-12-19 05:27:14
【问题描述】:
我有一个表格,我可以在其中插入页面加载。有趣的字段是进入时间和国家/地区。
如何查询,以便按小时获取最频繁的国家。结果集应如下所示(小时、国家/地区):
- 01 - 美国
- 02 - 新加坡
- 03 - 印度
- 04 - 丹麦
...等等。
我开始使用类似的东西
select DatePart(hour, entrytime) AS h, country from rpageload group by DatePart(hour, entrytime), country
但我认为我走错了方向。 ORDER BY 和 COUNT(*) 需要放在某个地方:)
-- 编辑/添加--
我发现这种方法给了我正确的结果。但我显然也得到了许多结果集,而不仅仅是一个,就像我想要的那样。
DECLARE @count INT
SET @count = 0
WHILE (@count < 24)
BEGIN
SELECT TOP 1 @count AS hr, COUNT(*) AS nbr, country FROM rpageload WHERE DATEPART(hour, entrytime) = @count GROUP BY country ORDER BY nbr DESC
SET @count = (@count + 1)
END
只是为了澄清:日期或日期无关紧要。目的是显示在一天中的不同时间哪个国家最频繁
【问题讨论】:
标签: sql sql-server-2005 select group-by