Tak funguje GROUP BY. Trvá několik řad a převádí je do jedné řady. Z tohoto důvodu musí vědět, co dělat se všemi spojenými řádky, kde mají některé sloupce (pole) různé hodnoty. To je důvod, proč máte dvě možnosti pro každé pole, které chcete VYBRAT:Buď je zahrňte do klauzule GROUP BY, nebo je použijte v agregační funkci, aby systém věděl, jak chcete pole zkombinovat.
Řekněme například, že máte tuto tabulku:
Name | OrderNumber
------------------
John | 1
John | 2
Když řeknete GROUP BY Name, jak to bude vědět, které OrderNumber se má zobrazit ve výsledku? Takže buď zahrnete OrderNumber do skupiny podle, což povede k těmto dvěma řádkům. Nebo použijete agregační funkci, která ukáže, jak zpracovat OrderNumbers. Například MAX(OrderNumber)
, což znamená, že výsledkem je John | 2
nebo SUM(OrderNumber)
což znamená, že výsledkem je John | 3
.