logo

GRUPA SQL WEDŁUG

Klauzula SQL GROUP BY służy do porządkowania identycznych danych w grupy na podstawie jednej lub większej liczby kolumn. Jest powszechnie używany z funkcjami agregującymi, takimi jak COUNT() SUM() AVG() MAX() i MIN() do wykonywania obliczeń na każdej grupie danych.

obraz_owoców' title=

Przykład: Najpierw to zrobimy tworzyć demonstracyjna baza danych SQL i tabela, na której skorzystamy z polecenia GROUP BY.

cdr pełna forma
Pracownicy' loading='lazy' title=

Zapytanie:



SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;

Wyjście:

Grupowanie według zapytania' loading='lazy' title=

Składnia:

SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;
  • funkcja_agregująca: funkcja używana do agregacji np. SUMA() ŚREDNIA() LICZBA().
  • nazwa_tabeli: nazwa tabeli, z której wybierane są dane.
  • stan : schorzenie: Opcjonalny warunek filtrowania wierszy przed grupowaniem (używany z WHERE).
  • kolumna1 kolumna2: Kolumny, w których zastosowano grupowanie.

Przykłady GROUP BY

Załóżmy, że mamy tabelę Student. Wstawimy do tej tabeli przykładowe dane, a następnie wykonamy operacje za pomocą GROUP BY, aby zrozumieć, w jaki sposób grupuje wiersze na podstawie kolumny i agreguje dane.

grp' loading='lazy' title=

Przykład 1: Grupuj według pojedynczej kolumny

Kiedy grupujemy według pojedynczej kolumny, wiersze o tej samej wartości w tej kolumnie są łączone. Na przykład grupowanie według przedmiotów pokazuje, ilu uczniów studiuje na każdym przedmiocie.

Zapytanie:

SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;

Wyjście:

grp-1' loading='lazy' title=

Wyjaśnienie: Każdy przedmiot pojawia się w tabeli dwukrotnie, więc liczba przedmiotów z matematyki i przedmiotów ścisłych w języku angielskim wynosi 2.

Przykład 2: Grupowanie według wielu kolumn

Użycie GROUP BY z wieloma kolumnami grupuje wiersze, które mają w tych kolumnach te same wartości. Na przykład grupowanie według przedmiotu i roku spowoduje połączenie wierszy z tą samą parą przedmiot-rok i będziemy mogli policzyć, ilu uczniów należy do każdej grupy.

Zapytanie:

SELECT subject year COUNT(*) FROM Student GROUP BY subject year;

Wyjście:

np.połączyć
grupa studentów' loading='lazy' title=

Wyjaśnienie: Studenci z tego samego przedmiotu i roku są grupowani razem. Ponieważ każda para przedmiot-rok występuje dwukrotnie, liczba wynosi 2 dla każdej grupy.

Klauzula HAVING w klauzuli GROUP BY

Klauzula HAVING służy do filtrowania wyników po grupowaniu, zwłaszcza podczas pracy z funkcjami agregującymi, takimi jak SUM() COUNT() lub AVG(). W przeciwieństwie do WHERE stosuje warunki na zgrupowanych danych.

emp' loading='lazy' title=

Przykład 1: Filtruj według całkowitego wynagrodzenia

W tym zapytaniu grupujemy pracowników według nazwy i wyświetlamy tylko tych, których łączne wynagrodzenie jest większe niż 50000.

SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; 

Wyjście

wiek-1' loading='lazy' title=

Wyjaśnienie : W wyniku pojawiają się tylko pracownicy, których łączne wynagrodzenie przekracza 50000.

Przykład 2: Filtruj według średniego wynagrodzenia

W tym zapytaniu grupujemy pracowników według wieku i wyświetlamy tylko te grupy wiekowe, w których średnia pensja przekracza 60000.

SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;

Wyjście:

wyjście-1' loading='lazy' title=

Wyjaśnienie: Zapytanie to grupuje pracowników według wieku i oblicza średnie wynagrodzenie dla każdego wieku. Wyświetlane są tylko te grupy wiekowe, w których średnia pensja jest większa niż 60 000.

Utwórz quiz