2016-03-27 19 views
0

私は、エポックでタイムスタンプ列の値を持っています(例:最小値= 1276570880、最大値= 1276657260)。 Hiveテーブルのレコードを30分間隔でグループ化するにはどうすればいいですか?Hiveテーブルにエポック時間間隔でレコードをグループ化する方法を教えてください。

最小タイムスタンプ値からタイムスタンプ列の最大タイムスタンプ値までの30分ごとの値をカウントする必要があります。

次のクエリを試しましたが、結果はありませんでした。

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) 

答えて

1

これは動作するはずです。グループ化が正しく機能するためには、タイムスタンプのラウンドを使用することが重要です。特定の例を示す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) 
関連する問題