hive-Ausdruck Nicht In der Group By-Schlüssel
Erstelle ich eine Tabelle in HIVE.
Es hat die folgenden Spalten:
id bigint, rank bigint, date string
Möchte ich, um avg(Rang) pro Monat. Ich kann diesen Befehl verwenden. Es funktioniert.
select a.lens_id, avg(a.rank)
from tableA a
group by a.lens_id, year(a.date_saved), month(a.date_saved);
Allerdings habe ich auch bekommen wollen aktuelle Informationen. Ich benutze dieses Befehl:
select a.lens_id, avg(a.rank), a.date_saved
from lensrank_archive a
group by a.lens_id, year(a.date_saved), month(a.date_saved);
Er klagt: Expression Not In Group By Key
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die vollständige Fehlermeldung sollte im format
Expression Not In Group By Key [value]
.Die
[value]
wird Ihnen sagen, was Ausdruck muss in derGroup By
.Blick auf die zwei Fragen, ich würde sagen, dass Sie brauchen, um hinzuzufügen
a.date_saved
explizit auf dieGroup By
.a.date_saved
müssen Sie die Gruppe, indem Sie es. Sie könnten in der Lage sein, um anzeigenyear(a.date_saved)
undmonth(a.date_saved)
da diese in derGroup by
aber nicht zu 100% auf.Einen Spaziergang rund um, ist der zusätzliche Bereich in einer collect_set und das erste element des Satzes. Zum Beispiel
Dies ist, weil es mehr als eine 'date_saved' - Eintrag unter Ihrer Gruppe durch. Sie können wiederum diese 'date_saved' Datensätze in arrays und Ausgabe diese.
War ich auch vor dem gleichen problem. Wenn Sie versuchen, führen Sie die Abfrage mit "beeline" dann schreiben Sie Ihre Abfrage in Kleinbuchstaben. Wie diese :
Schreiben Sie in Kleinbuchstaben gearbeitet, für mich es versuchen, ich denke, es wird funktionieren.