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

Por que não posso executar uma função de agregação em uma expressão que contém uma agregação, mas posso fazê-lo criando uma nova instrução select em torno dela?


SUM() no seu exemplo é um no-op - SUM() de um COUNT() significa o mesmo que apenas COUNT(). Portanto, nenhuma de suas consultas de exemplo parece fazer nada útil.

Parece-me que agregar aninhamento só faria sentido se você quisesse aplicar duas agregações diferentes - significando GROUP BY em diferentes conjuntos de colunas. Para especificar duas agregações diferentes, você precisaria usar o recurso GROUPING SETS ou o recurso SUM() OVER. Talvez se você explicar o que deseja alcançar, alguém possa lhe mostrar como.