2016-03-27 11 views
0

Zaman damgası sütun değerlerini çağımda (örneğin, min değeri = 1276570880, en büyük değer = 1276657260). 30 dakikalık aralıklarla Hive tablosundaki kayıtları nasıl gruplayabilirim.Hive tablosundaki kayıtları zaman aralıkları ile nasıl gruplayabilirim?

Zaman damgası sütunundaki en düşük zaman damgası değerine kadar, min. Zaman damgası değerinden başlayarak her 30 dakikada bir değer saymalıyım.

Aşağıdaki sorguyu denedim, ancak sonuç alınmadı.

SELECT COUNT(method) AS mycount, FROM_UNIXTIME(floor(UNIX_TIMESTAMP(ts)/1800)*1800) 
FROM http 
WHERE ts >= '2010-06-14 20:01:20' 
AND ts <= '2010-06-14 22:01:20' 
AND method='GET' 
GROUP 
    BY FROM_UNIXTIME(
     floor(UNIX_TIMESTAMP(ts)/1800)*1800) 

cevap

1

Çalışması gerekir. Gruplama işleminin doğru çalışması için zaman damgalarının yuvarlak kullanılması önemlidir. İşte özel örneğinizi gösteren bir SQLfiddle example.

select count(method) as mycount, 
     from_unixtime(round(unix_timestamp(ts)) 
from http 
where ts >= '2010-06-14 20:01:20' 
and ts <= '2010-06-14 22:01:20' 
and method='GET' 
group by round(ts/1800)