Klauzule GROUP BY v Accessu kombinuje záznamy s identickými hodnotami v zadaném seznamu polí do jednoho záznamu. Pokud do příkazu SELECT zahrnete agregační funkci SQL, například Sum nebo Count, vytvoří se pro každý záznam souhrnná hodnota.
Syntaxe
SELECT seznam_polí
FROM tabulka WHERE kritéria [GROUP BY seznam_seskupovacích_polí]Příkaz SELECT obsahující klauzuli GROUP BY má následující části:
Část |
Popis |
seznam_polí |
Název pole nebo polí, která se mají načíst, a dále jakékoli aliasy názvů polí, agregační funkce jazyka SQL, výběrové predikáty (ALL, DISTINCT, DISTINCTROW nebo TOP) nebo jiné možnosti příkazu SELECT |
tabulka |
Název tabulky, ze které jsou načítány záznamy. |
kritéria |
Kritéria výběru. Pokud příkaz zahrnuje klauzuli WHERE, databázový stroj Microsoft Access po uplatnění podmínek WHERE na záznamy provádí seskupení hodnot. |
seznam_seskupovacích_polí |
Názvy až 10 polí, které budou použity k seskupení záznamů. Pořadí názvů polí v seznamu seznam_seskupovacích_polí určuje úroveň seskupení od nejvyšší po nejnižší. |
Poznámky
Klauzule GROUP BY je nepovinná.
Pokud příkaz SELECT neobsahuje agregační funkce SQL, jsou souhrnné hodnoty vynechány.
Hodnoty Null v polích klauzule GROUP BY se seskupí a nevynechají se. Hodnoty Null nicméně nevyhodnocuje žádná z agregačních funkcí SQL.
Pomocí klauzule WHERE je možné vynechat řádky, které nemají být seskupeny. Pomocí klauzule HAVING lze filtrovat seskupené záznamy.
Pokud pole neobsahuje data objektu Memo nebo OLE, může pole v seznamu polí GROUP BY odkazovat na libovolné pole v libovolné tabulce uvedené v klauzuli FROM, a to i v případě, že pole není součástí příkazu SELECT, za předpokladu, že příkaz SELECT obsahuje alespoň jednu agregační funkci SQL. Databázový stroj Microsoft Access nemůže seskupovat podle polí Memo nebo OLE Object.
Všechna pole v seznamu polí příkazu SELECT musí být uvedena v klauzuli GROUP BY nebo jako argumenty agregační funkce SQL.