KWALIFIKACJA INF3 - TEST WIEDZY NR 4

PYTANIE NR 29.
Jakie jest prawidłowe użycie klauzuli SQL "GROUP BY"?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
GROUP BY służy do grupowania wierszy o tych samych wartościach w jednej lub wielu kolumnach, najczęściej po to, aby zastosować funkcje agregujące (np. zliczanie lub sumowanie) dla każdej grupy. Nie jest to ani usuwanie duplikatów (DISTINCT), ani sortowanie (ORDER BY), ani złączenie tabel (JOIN).

Pełne wyjaśnienie:

Klauzula GROUP BY w zapytaniach do relacyjnych baz danych służy do grupowania wierszy według wartości w jednej lub wielu kolumnach. W praktyce najczęściej używa się jej razem z funkcjami agregującymi, aby policzyć lub podsumować dane osobno dla każdej grupy (np. liczba zamówień na klienta, suma wartości zamówień na miesiąc).

Poprawna odpowiedź brzmi: "Grupowanie wyników zapytania według jednej lub więcej kolumn." — ponieważ właśnie to robi GROUP BY: dzieli zbiór wyników na grupy o wspólnych wartościach w wskazanych kolumnach, a następnie pozwala zwracać wynik zagregowany dla każdej grupy.

Dlaczego pozostałe propozycje są niepoprawne:

  • "Wybieranie unikalnych wartości z kolumny." opisuje mechanizm typowy dla DISTINCT. DISTINCT usuwa duplikaty w wyniku, ale nie tworzy grup do obliczeń agregujących w tym samym sensie co GROUP BY.
  • "Sortowanie wyników zapytania według jednej lub więcej kolumn." to rola ORDER BY. ORDER BY zmienia kolejność wierszy w wyniku, natomiast GROUP BY zmienia sposób zorganizowania danych w grupy; samo GROUP BY nie gwarantuje kolejności.
  • "Łączenie dwóch tabel na podstawie wspólnej kolumny." to definicja złączeń (JOIN). JOIN służy do zestawienia danych z wielu tabel, a GROUP BY działa na już uzyskanym zbiorze wierszy (który może pochodzić także z JOIN), porządkując go w grupy do agregacji.

Wskazówka egzaminacyjna: jeśli w pytaniu pojawia się idea "podsumowania w grupach" (liczba, suma, średnia dla kategorii), myśl o GROUP BY. Jeśli chodzi o kolejność wyświetlania, wybieraj koncepcję ORDER BY; jeśli o usunięcie duplikatów — DISTINCT; jeśli o łączenie tabel — JOIN.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
GROUP BY to klauzula zapytania, która grupuje wiersze według wartości w jednej lub wielu kolumnach. Najczęściej używa się jej, aby policzyć lub podsumować dane osobno dla każdej grupy, np. liczba zamówień na klienta.
Po zgrupowaniu wierszy GROUP BY umożliwia użycie funkcji agregujących (np. zliczanie, sumowanie) tak, aby wynik był liczony dla każdej grupy oddzielnie. Dzięki temu powstają raporty typu "wartość sprzedaży na miesiąc".
DISTINCT usuwa duplikaty w wyniku, a GROUP BY tworzy grupy według wskazanych kolumn. W praktyce oba mogą zmniejszyć liczbę wierszy, ale GROUP BY jest projektowane głównie pod agregacje, a DISTINCT pod eliminację powtórzeń.
Nie. GROUP BY odpowiada za grupowanie, a nie za kolejność. Za sortowanie służy ORDER BY. Jeśli potrzebujesz konkretnej kolejności w wyniku raportu, dodaj ORDER BY niezależnie od tego, czy używasz GROUP BY.
GROUP BY stosuje się przy raportach i statystykach: liczenie użytkowników według roli, liczba zgłoszeń według statusu, suma płatności według miesiąca. To typowe zadania w panelach administracyjnych i modułach analitycznych.
Najczęściej myli się GROUP BY z ORDER BY (bo oba odnoszą się do kolumn) oraz z DISTINCT (bo oba "redukują" wynik). Drugi błąd to uznawanie, że GROUP BY służy do łączenia tabel, czyli mieszanie z JOIN.
Grupowanie według wielu kolumn oznacza, że wiersze trafiają do tej samej grupy tylko wtedy, gdy wszystkie wskazane kolumny mają identyczne wartości. To przydatne np. w raportach "sprzedaż na klienta i miesiąc".
W wielu systemach baz danych jest to możliwe, ale najczęściej jest mało użyteczne, bo efekt przypomina wtedy eliminację duplikatów. W praktyce GROUP BY kojarz z agregacją: gdy chcesz policzyć, zsumować lub uśrednić dane w grupach.
JOIN dotyczy łączenia tabel i relacji między nimi (np. po identyfikatorze). GROUP BY dotyczy organizacji wyników w grupy w celu podsumowania danych. JOIN odpowiada na "skąd biorę dane", GROUP BY na "jak je podsumowuję".
Ćwicz krótkie scenariusze raportowe: "ile?", "jaka suma?", "jaka średnia?" z podziałem na kategorię lub okres. Porównuj na tych samych danych działanie DISTINCT, ORDER BY, JOIN i GROUP BY, aby utrwalić różnice i nie mylić pojęć.
info

Około 57% zdających odpowiada poprawnie na to pytanie. średnie

Specjaliści zwracają uwagę: "GROUP BY służy do grupowania wierszy o tych samych wartościach w jednej lub wielu kolumnach, najczęściej po to, aby zastosować funkcje agregujące (np. zliczanie lub sumowanie) dla każdej grupy."

Źródła:

  • PostgreSQL Documentation: SELECT — GROUP BY Clause, https://www.postgresql.org/docs/current/sql-select.html (accessed 2026-02-27)
  • MySQL 8.0 Reference Manual: GROUP BY Modifiers and Behavior, https://dev.mysql.com/doc/refman/8.0/en/group-by-modifiers.html (accessed 2026-02-27)
  • Microsoft Learn: SELECT - GROUP BY (Transact-SQL), https://learn.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql (accessed 2026-02-27)

Materiały:

  • Dokumentacja używanego systemu bazy danych (np. opis zapytań i agregacji)
  • Ćwiczenia z tworzenia raportów (agregacje i grupowanie)
  • Zadania praktyczne: różnicowanie DISTINCT, GROUP BY, ORDER BY oraz JOIN na tych samych danych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego