W przypadku dużej ilości danych często widzimy możliwość manipulowania danymi zgodnie z naszymi wymaganiami. Klauzula GROUP BY jest jedną z takich , służy do grupowania danych na podstawie kilku kolumn lub na podstawie warunków. W tym artykule na temat instrukcji SQL GROUP BY omówię kilka sposobów korzystania z instrukcji GROUP BY w następującej kolejności:
Zanim przejdziemy do przykładów użycia klauzuli GROUP BY, zrozumiemy, czym jest GROUP BY w SQL i jego składnię.
Instrukcja SQL GROUP BY
Ta instrukcja służy do grupowania rekordów o tych samych wartościach. Instrukcja GROUP BY jest często używana z funkcjami agregującymi do grupowania wyników według jednej lub większej liczby kolumn.Oprócz tego klauzula GROUP BY jest również używana z klauzulą HAVING i aby pogrupować zestaw wyników na podstawie warunków.
Składnia SQL GROUP BY
SELECT Column1, Column2, ..., ColumnN FROM TableName WHERE Warunek GROUP BY ColumnName (s) ORDER BY ColumnName (y)
Tutaj możesz dodać funkcje agregujące przed nazwami kolumn, a także klauzulę HAVING na końcu instrukcji, aby wspomnieć o warunku.Następnie w tym artykule na temat SQL GROUP BY wyjaśnijmy, jak zaimplementować tę instrukcję.
Przykłady:
Dla lepszego zrozumienia podzieliłem przykłady na następujące sekcje:
Rozważę następującą tabelę, aby wyjaśnić przykłady:
EmpID | EmpName | EmpEmail | Numer telefonu | Wynagrodzenie | Miasto |
jeden | Nidhi | nidhi@sample.com | 9955669999 | 50 000 | Bombaj |
2 | Anay | anay@sample.com | 9875679861 | 55000 | Położyć |
3 | Rahul | rahul@sample.com | 9876543212 | 35000 | Delhi |
4 | Sonia | sonia@sample.com | 9876543234 | 35000 | Delhi |
5 | Akash | akash@sample.com | 9866865686 | 25000 | Bombaj |
Przyjrzyjmy się każdemu z nich.
Użyj SQL GROUP BY na jednej kolumnie
Przykład:
Napisz zapytanie, aby uzyskać liczbę pracowników w każdym mieście.
WYBIERZ LICZBĘ (EmpID), miasto z pracowników GRUPA WEDŁUG MIASTA
Wynik:
Zobaczysz następujące dane wyjściowe:
Count (EmpID) | Miasto |
2 | Delhi |
2 | Bombaj |
jeden | Położyć |
Użyj SQL GROUP BY na wielu kolumnach
Przykład:
Napisz zapytanie, aby pobrać liczbę pracowników o różnych wynagrodzeniach w każdym mieście.
Wybierz miasto, wynagrodzenie, liczbę (*) z pracowników GROUP BY Miasto, wynagrodzenie
Wynik:
Tabela będzie zawierać następujące dane:
Miasto | Wynagrodzenie | Liczyć(*) |
Delhi | 35000 | 2 |
Bombaj | 25000 | jeden |
Bombaj | 50 000 | jeden |
Położyć | 55000 | jeden |
Użyj SQL GROUP BY z ORDER BY
Kiedy używamy instrukcji SQL GROUP BY z rozszerzeniem Klauzula ORDER BY wartości są sortowane w kolejności rosnącej lub malejącej.
Przykład:
Napisz zapytanie, aby pobrać liczbę pracowników w każdym mieście, posortowaną w porządku malejącym.
WYBIERZ LICZ (EmpID), Miasto Z Pracowników GRUPA WG MIASTA KOLEJNOŚĆ WG LICZB (EmpID) DESC
Wynik:
Tabela będzie zawierać następujące dane:
Count (EmpID) | Miasto |
2 | Delhi |
2 | Bombaj |
jeden | Położyć |
Użyj SQL GROUP BY z klauzulą HAVING
Instrukcja SQL GROUP BY jest używana z klauzulą „HAVING”, aby wspomnieć o warunkach grup.Ponieważ nie możemy używać funkcji agregujących z klauzulą WHERE, musimy użyć klauzuli „HAVING”, aby używać funkcji agregujących z klauzulą GROUP BY.
Przykład:
Napisz zapytanie, aby pobrać liczbę pracowników w każdym mieście, mających pensję> 15000
WYBIERZ LICZBĘ (EmpID), miasto Z GRUPY pracowników WG MIASTA Z WYNAGRODZENIEM> 15000
Wynik:
Ponieważ wszystkie rekordy w tabeli Pracownicy mają pensję> 15000, jako wynik zobaczymy następującą tabelę:
Count (EmpID) | Miasto |
2 | Delhi |
2 | Bombaj |
jeden | Położyć funkcje, które różnią się tylko zwracanym typem, nie mogą być przeciążane |
Użyj GROUP BY z JOINS
są SQL instrukcje używane do łączenia wierszy z co najmniej dwóch tabel na podstawie powiązanej kolumny między tymi tabelami. Możemy użyć instrukcji SQL GROUP BY, aby pogrupować zestaw wyników na podstawie kolumny / kolumn.Rozważ poniższe tabele, aby wykonać instrukcje JOIN z klauzulą SQL GROUP BY.
Tabela projektów:
ProjectID | EmpID | Identyfikator klienta | ProjectDate |
2. 3. 4. 5 | jeden | 4 | 01-26-2019 |
9876 | 2 | 5 | 02-28-2019 |
3456 | 3 | 6 | 03-12-2019 |
Tabela klientów:
Identyfikator klienta | Nazwa klienta |
4 | Sanjana |
5 | Rohan |
6 | Bieg |
Przykład
Napisz zapytanie, aby wyświetlić liczbę projektów żądanych przez każdego klienta:
SELECT Clients.ClientName, COUNT (Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Project.ProjectID = Clients.ProjectID GROUP BY ClientName
Wynik:
Tabela będzie zawierać następujące dane:
Nazwa klienta | RequestedProjects |
Bieg | jeden |
Rohan | jeden |
Sanjana | jeden |
W ten sposób dochodzimy do końca artykułu SQL GROUP BY. Sprawdź to autorstwa Edureka, zaufanej firmy zajmującej się edukacją online z siecią lub f ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Ten kurs uczy podstawowych koncepcji oraz zaawansowanych narzędzi i technik zarządzania danymi i administrowania bazą danych MySQL. Obejmuje praktyczną naukę pojęć takich jak MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, itd. Po zakończeniu szkolenia będziesz mógł stworzyć i zarządzać własną bazą danych MySQL oraz zarządzać danymi.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego artykułu „SQL GROUP BY”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.