Group by ohne aggregate Funktion

Ich habe gesehen, ein pandasql Abfrage wie diese:

df = pd.DataFrame({'A': [1, 2, 2], 'B': [3, 4, 5]})
sqldf('select * from df group by A', locals())

Gibt es:

   A  B
0  1  3
1  2  6

Ich finde es wirklich seltsam, haben ein group by ohne aggregate Funktion, aber kann mir jemand sagen, welche Funktion verwendet wird, auf der aggregierten Spalten zu verringern, mehrere Werte in ein?

Von ANSI-standards, die SQL-Anweisung ist falsch, da nicht aggregierte Spalten angezeigt werden muss, in GROUP BY - Klausel. MySQL ist nur Dialekt, den ich kenne, der dies ermöglicht, mit seinen only_full_group_by-Modus auf off gesetzt ist. Vielleicht ist dieses Modul verwendet diesen Modus und/oder Dialekt. Und keine direkte Funktion reduziert mehrere Werte als GROUP BY läuft verschiedene Gruppierungen von Werten zu führen Aggregationen. Kein Zweifel, die inspiration pandas' groupby().
Wo haben die 6 (B1) kommt?

InformationsquelleAutor zoran119 | 2017-03-20

Schreibe einen Kommentar