样本表:
uid time_stp traf
1 2016-01-13 00:00:00 6
1 2016-01-13 05:00:00 8
1 2016-01-13 10:00:00 14
1 2016-01-13 15:00:00 26
1 2016-01-13 20:00:00 42
...
我的SQL:
select
uid,
from_unixtime(floor(unix_timestamp(time_stp)/3600) * 3600) as tm,
sum(traf),
max(traf),
-- xxx as max_traf_time
from
group_by_time_range
group by
uid, tm;
我希望每小时traf
总和,并在每小时部分找到最大traf
和相应的time_stp
。我怎么能用一个SQL语句来完成这些东西。
答案 0 :(得分:0)
你试过吗
select
T1.uid,
from_unixtime(floor(unix_timestamp(time_stp)/3600) * 3600) as tm,
sum(traf),
(
SELECT max(traf)
FROM group_by_time_range T2
WHERE T2.uid = T1.uid
) as Max_Traf,
(
SELECT time_stp
FROM group_by_time_range T3
WHERE traf = Max_Traf
) as max_traf_time
from
group_by_time_range T1
group by
uid, tm;