Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

È possibile utilizzare la funzione Aggregate in un'istruzione Select senza utilizzare la clausola Group By?

Tutte le colonne nella clausola SELECT che non hanno un aggregato devono trovarsi in GROUP BY

Bene:

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

Buono anche:

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

Nessun'altra colonna =nessun GROUP BY necessario

SELECT MAX(col4)
...

Non funzionerà:

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

Inutile:

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

Avere un aggregato (MAX ecc.) con altre colonne senza GROUP BY non ha senso perché la query diventa ambigua.