Heim > Datenbank > MySQL-Tutorial > Hauptteil

Kann die Gruppierung nach zwei Bedingungen haben?

PHPz
Freigeben: 2024-02-18 14:11:07
Original
722 Leute haben es durchsucht

group by可以两个条件吗

Titel: Beispiel für die Verwendung von GROUP BY zur Implementierung einer Gruppierung mit mehreren Bedingungen

In SQL-Abfragen wird die GROUP BY-Anweisung normalerweise verwendet, um Daten nach bestimmten Spalten zu gruppieren und Aggregationsvorgänge für jede Gruppierung durchzuführen. Manchmal müssen wir jedoch zum Gruppieren zwei Bedingungen gleichzeitig erfüllen. Können wir also mehrere Bedingungen in der GROUP BY-Anweisung verwenden? Als nächstes beantworten wir diese Frage anhand konkreter Codebeispiele.

Angenommen, wir haben eine Datentabelle mit dem Namen „Mitarbeiter“, die Mitarbeiterinformationen enthält, einschließlich Name, Abteilung und Gehalt. Jetzt müssen wir die Mitarbeiter nach Abteilung und Geschlecht gruppieren und das Durchschnittsgehalt für jede Gruppe berechnen.

Erstellen wir zunächst eine Beispieldatentabelle und fügen einige Daten ein:

CREATE TABLE employees (
  name VARCHAR(50),
  department VARCHAR(50),
  gender VARCHAR(10),
  salary DECIMAL(10, 2)
);

INSERT INTO employees VALUES
  ('张三', '销售部', '男', 5000),
  ('李四', '销售部', '男', 5500),
  ('王五', '销售部', '女', 4800),
  ('赵六', '财务部', '女', 6000),
  ('刘七', '财务部', '男', 6500),
  ('陈八', '技术部', '男', 7000),
  ('许九', '技术部', '女', 5500);
Nach dem Login kopieren

Jetzt können wir die folgende Abfrageanweisung verwenden, um nach Abteilung und Geschlecht zu gruppieren und das Durchschnittsgehalt zu berechnen:

SELECT department, gender, AVG(salary) AS average_salary
FROM employees
GROUP BY department, gender;
Nach dem Login kopieren

GROUP in der obigen Abfrageanweisung The BY Die Klausel verwendet zwei Felder: Abteilung und Geschlecht. Es weist die Datenbank an, die Daten nach einer Kombination dieser beiden Felder zu gruppieren. Anschließend verwenden wir die AVG-Funktion, um das Durchschnittsgehalt für jede Gruppe zu berechnen und nennen es „average_salary“.

Nachdem wir die obige Abfrageanweisung ausgeführt haben, erhalten wir die folgenden Ergebnisse:

部门      性别      平均工资
-------------------------
销售部    男       5250.00
销售部    女       4800.00
财务部    女       6000.00
财务部    男       6500.00
技术部    男       7000.00
技术部    女       5500.00
Nach dem Login kopieren

Wie aus den Ergebnissen ersichtlich ist, werden die Daten zunächst nach dem Feld „Abteilung“ und dann innerhalb jedes Felds nach dem Feld „Geschlecht“ gruppiert Abteilung. Auf diese Weise erkennen wir die Notwendigkeit, mehrere Bedingungen für die Gruppierung zu verwenden.

Zusammenfassend lässt sich sagen, dass wir in der GROUP BY-Anweisung mehrere Bedingungen zum Gruppieren verwenden können. Durch die Verwendung mehrerer Felder in der GROUP BY-Klausel können wir Daten nach Kombinationen dieser Felder gruppieren und Aggregationsvorgänge für jede Gruppe durchführen. Im obigen Beispiel haben wir gezeigt, wie man mit GROUP BY nach Abteilung und Geschlecht gruppiert und das Durchschnittsgehalt berechnet.

Ich hoffe, dieser Artikel hilft Ihnen zu verstehen, wie Sie GROUP BY für die Gruppierung mit mehreren Bedingungen in SQL-Abfragen verwenden. Wenn Sie weitere Fragen haben, können Sie diese gerne stellen.

Das obige ist der detaillierte Inhalt vonKann die Gruppierung nach zwei Bedingungen haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!