Ето как работи GROUP BY. Отнема няколко реда и ги превръща в един ред. Поради това той трябва да знае какво да прави с всички комбинирани редове, където има различни стойности за някои колони (полета). Ето защо имате две опции за всяко поле, което искате да ИЗБЕРЕТЕ:Или го включете в клаузата GROUP BY, или го използвайте в агрегатна функция, така че системата да знае как искате да комбинирате полето.
Например, да приемем, че имате тази таблица:
Name | OrderNumber
------------------
John | 1
John | 2
Ако кажете ГРУПА ПО име, как ще разбере кой номер на поръчка да покаже в резултата? Така че или включвате OrderNumber в група по, което ще доведе до тези два реда. Или използвате агрегатна функция, за да покажете как да боравите с OrderNumbers. Например MAX(OrderNumber)
, което означава, че резултатът е John | 2
или SUM(OrderNumber)
което означава, че резултатът е John | 3
.