2016-06-27 4 views
0

Ich versuche jede Woche eine vollständig aufgefrischt Reihe von Zahlen zu produzieren, ziehen von einem Tisch im Bienenstock. Gerade jetzt ich mit dieser Methode:Zählen von Woche in Hive

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; 

Ich versuche, etwas mehr entlang der Linien zu erhalten:

SELECT Monat (Zeitstempel), Woche (Zeitstempel), COUNT (DISTINCT userid) FROM Daten Gruppe nach Monat, Woche

Aber meine Woche läuft Sonntag bis Samstag. Gibt es einen klügeren Weg, dies zu tun, der in HIVE funktioniert?

Antwort

1

Ich sehe, dass Sie die Daten nach Woche gruppiert werden müssen. Sie können dies tun:

+0

Ich habe versucht, dass an einem Punkt, aber weekofye beginnt seine Woche an einem Montag, wo ich die Woche an einem Sonntag beginnen muss. Ich konnte nicht herausfinden, wie ich das ändern könnte. Aber deine Lösung wäre genau das, was ich will, nur einen freien Tag. EDIT: ist es möglich, den Zeitstempel um einen Tag zu trick weekofyear zu erweitern? –