Klauzula GROUP BY w programie Access łączy rekordy o identycznych wartościach pól wymienionych na liście w jeden rekord. Jeśli w instrukcji SELECT zostanie dodana funkcja agregująca języka SQL, taka jak Sum czy Count, dla każdego rekordu zostanie utworzona wartość zbiorcza.
Składnia
SELECT lista_pól
FROM tabela WHERE kryteria [GROUP BY lista_pól_grupowania]Instrukcja SELECT zawierająca klauzulę GROUP BY składa się z następujących segmentów:
Segment |
Opis |
lista_pól |
Nazwa pola lub pól, jakie mają być pobierane wraz ze wszystkimi ewentualnymi aliasami nazw pól, funkcje agregujące w języku SQL, orzeczenia wyboru (ALL, DISTINCT, DISTINCTROW i TOP) lub inne opcje instrukcji SELECT. |
tabela |
Nazwa tabeli, z której są pobierane rekordy. |
kryteria |
Kryteria wyboru. Jeśli instrukcja zawiera klauzulę WHERE, aparat bazy danych programu Microsoft Access grupuje wartości po zastosowaniu warunków klauzuli WHERE do rekordów. |
lista_pól_grupowania |
Nazwy maksymalnie 10 pól używanych do grupowania rekordów. Kolejność nazw pól na liście lista_pól_grupowania określa poziomy grupowania od najwyższego do najniższego. |
Uwagi
Klauzula GROUP BY jest opcjonalna.
Jeśli instrukcja SQL nie zawiera funkcji agregacji języka SQL, wartości zbiorcze są pomijane.
Wartości Null w polach objętych klauzulą GROUP BY są grupowane i nie są pomijane. Wartości Null nie są jednak uwzględniane w żadnych funkcjach agregujących języka SQL.
Za pomocą klauzuli WHERE można wykluczyć wiersze, które nie mają być grupowane, a za pomocą klauzuli HAVING można filtrować rekordy po ich zgrupowaniu.
Jeśli pole na liście pól w klauzuli GROUP BY nie zawiera danych typu Nota lub Obiekt OLE, może odwoływać się do dowolnego pola zawartego w dowolnej tabeli wymienionej w klauzuli FROM, nawet jeśli to pole nie jest uwzględnione w instrukcji SELECT, jednak instrukcja SELECT musi zawierać przynajmniej jedną funkcję agregującą SQL. Aparat bazy danych programu Microsoft Access nie grupuje pól o typie danych Nota i Obiekt OLE.
Wszystkie pola na liście pól instrukcji SELECT muszą być zawarte w klauzuli GROUP BY lub dołączone jako argumenty w funkcji agregacji języka SQL.