Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL GROUP BY-Anweisung

巴扎黑
Freigeben: 2016-12-19 11:11:17
Original
1125 Leute haben es durchsucht

Die GROUP BY-Anweisung gruppiert die Ergebnismenge basierend auf einer oder mehreren Spalten.

Wir können Funktionen wie COUNT, SUM, AVG usw. für gruppierte Spalten verwenden.

GROUP BY-Syntax

SELECT Spaltenname,Funktion(Spaltenname)FROM Tabellenname
WHERE Spaltenname-Operatorwert
GROUP BY Spaltenname;

Beispieldemonstration

Die Beispiele in diesem Kapitel verwenden die folgende Tabellenstruktur und Daten. Vor der Verwendung können wir die folgenden Daten in die Datenbank importieren.

MariaDB [RUNOOB]> SET NAMES utf8;Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [RUNOOB]> SET FOREIGN_KEY_CHECKS = 0;Abfrage OK, 0 Zeilen betroffen ( 0,00 Sek.)

MariaDB [RUNOOB]> DROP TABLE IF EXISTS `employee_tbl`;Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.)MariaDB [RUNOOB]> CREATE TABLE `employee_tbl` (
-> `id` int(11) NOT NULL,
-> `name` char(10) NOT NULL DEFAULT '',
-> > `singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Anzahl der Anmeldungen',
-> PRIMARY KEY (`id`)
-> Abfrage OK, 0 Zeilen betroffen (0,04 Sek.)

MariaDB [RUNOOB]> Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [RUNOOB]> ( '1', 'aa', '2016-04-22 15:25:33', '1'), ('2', 'bb', '2016-04-20 15:25:47', ' 3 '), ('3', 'cc', '2016-04-19 15:26:02', '2'), ('4', 'bb', '2016-04-07 15:26: 14 ', '4'), ('5', 'aa', '2016-04-11 15:26:40', '4'), ('6', 'aa', '2016-04-04 15 :26:54', '2');Abfrage OK, 6 Zeilen betroffen, 6 Warnungen (0,00 Sek.)
Datensätze: 6 Duplikate: 0 Warnungen: 6

MariaDB [RUNOOB]> ; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [RUNOOB]> SET FOREIGN_KEY_CHECKS = 1;Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Nach dem Import ist erfolgreich, führen Sie die folgende SQL-Anweisung aus:

MariaDB [RUNOOB]> ---- ------+-------+

|. name |
+----+------+-- --------------+--------+
| 2016-04-22 15:25:33 |
|. 2016-04-20 15:25:47 |. 2016-04-19 15:26:02 |. bb | 2016-04-07 15:26:14 |. 2016-04-11 15:26:40 |. 2016-04-04 15:26 :54 |. 2 |
+----+------+---------------------+------- -+
6 Zeilen im Satz (0,00 Sek.)


Als nächstes verwenden wir die GROUP BY-Anweisung, um die Datentabelle nach Namen zu gruppieren und zu zählen, wie viele Datensätze jede Person hat:

MariaDB [ RUNOOB]> SELECT name, COUNT(*) FROM Employee_tbl GROUP BY name;+------+
|

+---------+

| bb | +--- ---+----------+

3 Reihen im Satz (0,00 Sek.)



Mit ROLLUP verwenden

MIT ROLLUP um eine Gruppierung zu erreichen Basierend auf den statistischen Daten werden die gleichen Statistiken (SUM, AVG, COUNT ...) durchgeführt.

Zum Beispiel gruppieren wir die obige Datentabelle nach Namen und zählen dann, wie oft sich jede Person anmeldet:

MariaDB [RUNOOB]> singin_count FROM Employee_tbl GROUP BY name WITH ROLLUP;+-------------+

| name |. +-------+

|. 7 |

| >+-- ----+--------------+

4 Zeilen im Satz (0,00 Sek.)

Der Datensatz NULL stellt die Zahl dar von Logins für alle.


Wir können „coalesce“ verwenden, um einen Namen festzulegen, der die NUll-Syntax ersetzen kann:

select „coalesce(a,b,c);“


Parameterbeschreibung:

Wenn a!=null, wählen Sie a;

Wenn a==null, wählen Sie b; >Wenn a b c alle null sind, wird null zurückgegeben (bedeutungslos).

Wenn in den folgenden Beispielen der Name leer ist, verwenden wir stattdessen die Gesamtzahl:

MariaDB [RUNOOB]> SELECT colonesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;+------------------------+ --------------+
| merge(name, '总数')     | singin_count |
+------------------------+--------------+
| aa                     |            7 |
| bb                     |            7 |
| cc                     |            2 |
| 总数                    |           16 |
+----------+----------------------------+
4 Zeilen im Satz (0,00 Sek.)


Verwandte Etiketten:
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!