2015-10-06 151 views
-1

我必须来计算,每次5分钟间隔十大最访问的网站00:00:00以来 下面给出的是我的数据:十大十分钟 - 蜂巢查询

time  site 
00:00:00 google.com 
00:01:06 yahoo.com 
00:03:06 youtube.com 
00:05:09 google.com 
00:11:07 amazon.com 
00:14:05 yahoo.com 
00:21:00 google.com 
00:30:56 amazon.com 

我迷茫使用多个查询作为单个配置单元查询的一部分。

请帮忙。

回答

0

查询

select interv, col2, count(col2) 
from (
    select floor((unix_timestamp(col1)-unix_timestamp(to_date(col1),'yyyy-MM-dd'))/600)*600 as interv, col1, col2 
    from default.test_time_group) t 
group by interv,col2; 

示例模式

{time TIMESTAMP, site STRING} 

实施例:

2015-10-07 00:00:00 google.com 
2015-10-07 00:01:06 yahoo.com 

结果

interval col2   count 

0   google.com 2 
0   yahoo.com 1 
0   youtube.com 1 
600  amazon.com 1 
600  yahoo.com 1 
1200  google.com 1 
1800  amazon.com 1 

说明:我减去柱日期的Unix时间戳从日期(没有时间戳)的Unix时间戳检查的时间间隔。为了在相同的时间间隔内获得所有10分钟的交易,我除以600,取出floor(),乘以600.然后,我按间隔和col2分组以得到结果。

注意:您可以根据需要设置排序。