2016-06-27 5 views
0

私は毎週完全にリフレッシュされた数字のセットをハイブのテーブルから引っぱり出しています。ハイブで週ごとに数えて

SELECT 
COUNT(DISTINCT case when timestamp between TO_DATE("2016-01-28") and TO_DATE("2016-01-30") then userid end) as week_1, 
COUNT(DISTINCT case when timestamp between TO_DATE("2016-01-28") and TO_DATE("2016-02-06") then userid end) as week_2 
FROM Data; 

私はの線に沿ってより多くの何かを取得しようとしている:

SELECT 月(タイムスタンプ)、週(タイムスタンプ)、COUNT(DISTINCTユーザーID) FROMを今私は、このメソッドを使用してデータ グループ月、週

しかし、週は日曜日から土曜日までです。 HIVEでこれを行うよりスマートな方法がありますか?

答えて

1

データが週単位でグループ化されている必要があります。

SELECT weekofyear(to_date(timestamp)), COUNT (DISTINCT userid) FROM Data Group By weekofyear(to_date(timestamp)) 
+0

私はある時点でそれを試しましたが、weekofyearは月曜日に週が始まり、そこで日曜日に週を始める必要があります。私はそれを変更する方法を理解できませんでした。しかし、あなたのソリューションはまさに私が欲しいものです。 編集:1週間にタイムスタンプを増やしてweekofyearをトリックすることは可能ですか? –

関連する問題