Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego nie mogę wykonać funkcji agregującej na wyrażeniu zawierającym agregację, ale mogę to zrobić, tworząc wokół niego nową instrukcję select?

SUM() w twoim przykładzie to brak operacji - SUM() funkcji COUNT() oznacza to samo, co tylko COUNT(). Więc żadne z twoich przykładowych zapytań nie wydaje się być użyteczne.

Wydaje mi się, że zagnieżdżanie agregatów miałoby sens tylko wtedy, gdy chciałbyś zastosować dwie różne agregacje - czyli GROUP BY na różnych zestawach kolumn. Aby określić dwie różne agregacje, musisz użyć funkcji ZESTAWY GRUPOWANIA lub funkcji SUM() OVER. Może jeśli wyjaśnisz, co chcesz osiągnąć, ktoś pokaże Ci, jak.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gdzie wartość w kolumnie zawierającej wartości oddzielone przecinkami

  2. Jakie jest znaczenie przedrostka N w instrukcjach T-SQL i kiedy należy go używać?

  3. Zapytanie SQL — łączenie wyników w jeden ciąg

  4. Jak usunąć wszystkie znaki niealfabetyczne z ciągu w SQL Server?

  5. Przeszukaj wszystkie tabele, wszystkie kolumny pod kątem określonej wartości SQL Server