Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Възможно ли е да се използва функцията Aggregate в оператор Select, без да се използва клауза Group By?

Всички колони в клаузата SELECT, които нямат агрегат, трябва да бъдат в GROUP BY

Добре:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3

Също така добре:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6

Няма други колони =не е необходимо ГРУПИРАНЕ ПО

SELECT MAX(col4)
...

Няма да работи:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2

Безсмислено:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)

Наличието на агрегат (MAX и т.н.) с други колони без GROUP BY няма смисъл, защото заявката става двусмислена.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Искате да получите списък на всички младши лекари, работещи под старши лекар и обратно?

  2. SQL Server връща неочакван номер на седмица

  3. Как да понижа SQL 2008 MDF файл за използване в SQL 2005?

  4. Преобразуване на ‘time’ в ‘smalldatetime’ в SQL Server (T-SQL примери)

  5. Как да получа текущите записи въз основа на датата на влизане в сила?