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

GROUP BY поведение, когато в клаузата SELECT не присъстват агрегатни функции

Прочетете документацията на MySQL в тази конкретна точка.

Накратко, MySQL позволява пропускане на някои колони от GROUP BY за целите на производителността, но това работи само ако всички пропуснати колони имат една и съща стойност (в рамките на групиране), в противен случай стойността, върната от заявката, наистина е неопределена , както правилно предполагат други в тази публикация. За да сте сигурни, че добавянето на клауза ORDER BY няма да въведе повторно никаква форма на детерминирано поведение.

Въпреки че не е в основата на проблема, този пример показва как използването на * вместо изрично изброяване на желаните колони често е лоша идея.

Извадка от документацията на MySQL 5.0:

When using this feature, all rows in each group should have the same values
for the columns that are omitted from the GROUP BY part. The server is free
to return any value from the group, so the results are indeterminate unless
all values are the same. 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JOIN заявки срещу множество заявки

  2. Разбиране на размерите на съхранение за типовете данни на MySQL TEXT

  3. Как да възстановим непоследователен MySQL Slave?

  4. Как да вмъкнете низ в друг низ в MySQL с помощта на INSERT()

  5. Формат на датата в MySQL ДД/ММ/ГГГГ избор на заявка?