1

My table is

    id  username calledtime
1 user1 01-02-2012 10:04:02 2 user2 01-02-2012 10:12:02 3 user1 01-02-2012 10:15:22 5 user4 01-02-2012 11:20:02 6 user6 01-02-2012 11:23:02 7 user8 01-02-2012 11:34:15 8 user7 01-02-2012 11:55:02 9 user8 01-02-2012 15:23:02 10 user6 01-02-2012 16:03:02 11 user9 01-02-2012 19:43:02

Here the peak time is 10 - 12. because most users are called in between in 10 and 12. How do I find out this ?

Can anyone help me out to get this

thanks

4

1 に答える 1

0

私はあなたがちょうどその時間にグループを望んでいると思います:

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

1時間のピークを取得するには、この最大値を見つける必要があります。最も簡単な方法は次のとおりです。

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

時間だけでなく日付情報も必要になる場合があります。それをselectとgroupbyに含めるだけです。

于 2012-08-13T13:19:58.907 に答える