Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Est-il possible d'utiliser la fonction Aggregate dans une instruction Select sans utiliser la clause Group By ?

Toutes les colonnes de la clause SELECT qui n'ont pas d'agrégat doivent être dans GROUP BY

Bien :

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

Aussi bien :

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

Aucune autre colonne =aucun GROUP BY nécessaire

SELECT MAX(col4)
...

Ne fonctionnera pas :

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

Inutile :

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

Avoir un agrégat (MAX etc.) avec d'autres colonnes sans GROUP BY n'a aucun sens car la requête devient ambiguë.