2015-10-06 149 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分組以得到結果。

注意:您可以根據需要設置排序。