2017-09-30 5 views
1

Wenn ich vier Spalten habe: A, B, C und D in einer Tabelle wie würde eine Oracle SQL-Abfrage-Gruppe nach Spalte D, dann unter jeder Gruppierung die Zeilen auswählen, wobei C = 'c' und für diese ausgewählten Zeilen, die Wert von B minus A?Oracle SQL Abfrage GROUP BY und subtrahieren?

+0

Wie möchten Sie den Wert von A innerhalb jeder Gruppe aggregieren? alles zusammenfassen? Mittelwertbildung sie? – MondKin

Antwort

2

SELECT Aggfunction(B - A), D FROM TABLENAME WHERE C='c' GROUP BY D

Aggfunction Ersetzen mit Aggregatfunktion möchten Sie zum Beispiel SUM oder AVG. Sie können nicht gruppierte Spalten nur aus einer gruppierten SQL-Abfrageergebnismenge in eine Aggregatfunktion einbeziehen (was sinnvoll ist, da Sie nur einen Datensatz pro Gruppe erhalten, also die nicht gruppierten Spalten auf irgendeine Weise ansammeln müssen, um einen Wert pro Gruppe darzustellen).