1

我的桌子是

    id 用户名 calltime
1 个用户 1 01-02-2012 10:04:02 2 用户2 01-02-2012 10:12:02 3 用户 1 01-02-2012 10:15:22 5 用户 4 01-02-2012 11:20:02 6 用户6 01-02-2012 11:23:02 7 用户8 01-02-2012 11:34:15 8 用户 7 01-02-2012 11:55:02 9 用户 8 01-02-2012 15:23:02 10 用户6 01-02-2012 16:03:02 11 用户 9 01-02-2012 19:43:02

这里的高峰时间是 10 - 12。因为大多数用户在 10 和 12 之间被调用。我如何找到这个?

谁能帮我搞定这个

谢谢

4

1 回答 1

0

我想你只想按小时分组:

select extract(hour from calledtime) as hr,
       count(*)
from t
group by extract(hour from calledtime)
order by 1

要达到一个小时的峰值,您需要为此找到最大值。最简单的方法是:

select extract(hour from calledtime) as hr,
       count(*)
from t
group by extract(hour from calledtime)
order by count(*) desc
limit 1

您可能还需要日期信息和时间;只需将其包含在选择和分组依据中。

于 2012-08-13T13:19:58.907 回答