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

Perché non posso eseguire una funzione di aggregazione su un'espressione contenente un aggregato ma posso farlo creando una nuova istruzione select attorno ad essa?

SUM() nel tuo esempio è un no-op - SUM() di un COUNT() significa lo stesso di solo COUNT(). Quindi nessuna delle tue query di esempio sembra fare qualcosa di utile.

Mi sembra che gli aggregati di nidificazione avrebbero senso solo se si volessero applicare due diverse aggregazioni, ovvero GROUP BY su diversi insiemi di colonne. Per specificare due diverse aggregazioni è necessario utilizzare la funzione GROUPING SETS o SUM() OVER. Forse se spieghi cosa vuoi ottenere qualcuno potrebbe mostrarti come.