sql >> Databasteknik >  >> RDS >> Sqlserver

Varför kan jag inte utföra en aggregatfunktion på ett uttryck som innehåller ett aggregat men jag kan göra det genom att skapa en ny select-sats runt det?

SUM() i ditt exempel är en no-op - SUM() av ​​en COUNT() betyder detsamma som bara COUNT(). Så ingen av dina exempelfrågor verkar göra något användbart.

Det verkar för mig att kapslingsaggregat bara skulle vara meningsfullt om du ville använda två olika aggregationer - vilket betyder GROUP BY på olika uppsättningar kolumner. För att specificera två olika aggregationer skulle du behöva använda funktionen GRUPPERINGSUPPGIFTER eller SUM() OVER-funktionen. Om du förklarar vad du vill uppnå kanske någon kan visa dig hur.



  1. Hur frågar jag efter alla datum som är större än ett visst datum i SQL Server?

  2. Så här fixar du "profilnamnet är inte giltigt" när du uppdaterar en e-postprofil för databas i SQL Server (T-SQL)

  3. Hur man skriver oracle insert script med ett fält som CLOB?

  4. Introduktion till Multi-Statement Table-Valued Functions (MSTVF) i SQL Server