English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen Sie, wie Sie Zeilen basierend auf Spaltenwerten gruppieren.
GROUP BY Klausel undSELECTAnweisungen undAggregationsfunktionenzusammengefasst, um Zeilen nach gemeinsamen Spaltenwerten zu gruppieren
Um dies besser zu verstehen, lassen Sie uns folgendes betrachtenemployeesunddepartmentsTabelle.
+--------+--------------+------------+---------+ | emp_id | emp_name | hire_date | dept_id | +--------+--------------+------------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 4 | | 2 | Tony Montana | 2002-07-15 | 1 | | 3 | Sarah Connor | 2005-10-18 | 5 | | 4 | Rick Deckard | 2007-01-03 | 3 | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+------------+---------+ | +---------+------------------+ | dept_id | dept_name | +---------+------------------+ | 1 | Administration | | 2 | Customer Service | | 3 | Finance | | 4 | Human Resources | | 5 | Sales | +---------+------------------+ | |
Tabelle: employees | Tabelle: departments |
Jetzt geht es nicht nur darum, Mitarbeiter und die Namen der Abteilungen zu finden, sondern auch um die Gesamtzahl der Mitarbeiter in jeder Abteilung.
Für kleine Tabellen können Sie einfach anwendenLinkes Joinsund die Anzahl der Mitarbeiter berechnen, aber angenommen, eine Tabelle enthält Tausende von Mitarbeitern, wird dies nicht so einfach sein.
In diesem Fall kann die GROUP BY Klausel zusammen mit der SELECT-Anweisung wie folgt verwendet werden:
SELECT t1.dept_name, count(t2.emp_id) AS total_employees FROM departments AS t1 LEFT JOIN employees AS t2 ON t1.dept_id = t2.dept_id GROUP BY t1.dept_name;
Wenn Sie den obigen Befehl ausführen, erhalten Sie den folgenden Ausgabe:
+-------------------+-----------------+ | dept_name | total_employees | +-------------------+-----------------+ | Administration | 1 | | Customer Service | 0 | | Finance | 1 | | Human Resources | 1 | | Sales | 1 | +-------------------+-----------------+
Im nächsten Kapitel werden Sie lernen, wie Sie die HAVING- und GROUP BY-Klauseln verwenden, um Suchkriterien für Gruppen oder Aggregationen zu spezifizieren.