Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

É possível usar a função Agregar em uma instrução Select sem usar a cláusula Group By?


Todas as colunas da cláusula SELECT que não possuem agregação precisam estar no GROUP BY

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

Também é bom:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6

Nenhuma outra coluna =não é necessário GROUP BY
SELECT MAX(col4)
...

Não funcionará:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2

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

Ter um agregado (MAX etc) com outras colunas sem um GROUP BY não faz sentido porque a consulta se torna ambígua.