Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum kann ich keine Aggregatfunktion für einen Ausdruck ausführen, der ein Aggregat enthält, aber ich kann dies tun, indem ich eine neue select-Anweisung darum herum erstelle?

SUM() in Ihrem Beispiel ist ein No-Op - SUM() von COUNT() bedeutet dasselbe wie nur COUNT(). Also scheint keine Ihrer Beispielabfragen etwas Nützliches zu tun.

Es scheint mir, dass das Verschachteln von Aggregaten nur dann Sinn machen würde, wenn Sie zwei verschiedene Aggregationen anwenden wollten - also GROUP BY auf verschiedene Spaltensätze. Um zwei verschiedene Aggregationen anzugeben, müssten Sie die Funktion GROUPING SETS oder SUM() OVER verwenden. Wenn Sie erklären, was Sie erreichen möchten, könnte Ihnen vielleicht jemand zeigen, wie.