Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ist es möglich, die Aggregate-Funktion in einer Select-Anweisung zu verwenden, ohne die Group By-Klausel zu verwenden?

Alle Spalten in der SELECT-Klausel, die kein Aggregat haben, müssen in GROUP BY

enthalten sein

Gut:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3

Auch gut:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6

Keine anderen Spalten =kein GROUP BY erforderlich

SELECT MAX(col4)
...

Funktioniert nicht:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2

Sinnlos:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)

Ein Aggregat (MAX usw.) mit anderen Spalten ohne GROUP BY zu haben, macht keinen Sinn, da die Abfrage mehrdeutig wird.