MySQL-Summengruppe nach Verwendung? Ausführliche Erklärung der Gruppierung nach Zählung in der MySQL-Datenbank

MySQL Summengruppe nach Verwendung?MySQL-DatenbankAusführliche Erläuterung der Gruppierung nach Anzahl

MySQL GROUP BY-Anweisung

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

In der gruppierten Spalte können wir die Funktionen COUNT, SUM, AVG usw. verwenden.

GROUP BY-Syntax

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

Beispieldemonstration

Das Beispiel in diesem Kapitel verwendet die folgende Tabellenstruktur und Daten.Vor der Verwendung können wir die folgenden Daten in die Datenbank importieren.

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
--  Table structure for `employee_tbl`
-- ----------------------------
DROP TABLE IF EXISTS `employee_tbl`;
CREATE TABLE `employee_tbl` (
  `id` int(11) NOT NULL,
  `name` char(10) NOT NULL DEFAULT '',
  `date` datetime NOT NULL,
  `singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
--  Records of `employee_tbl`
-- ----------------------------
BEGIN;
INSERT INTO `employee_tbl` VALUES ('1', '小明', '2016-04-22 15:25:33', '1'), ('2', '小王', '2016-04-20 15:25:47', '3'), ('3', '小丽', '2016-04-19 15:26:02', '2'), ('4', '小王', '2016-04-07 15:26:14', '4'), ('5', '小明', '2016-04-11 15:26:40', '4'), ('6', '小明', '2016-04-04 15:26:54', '2');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

Führen Sie nach erfolgreichem Import die folgende SQL-Anweisung aus:

mysql> set names utf8;
mysql> SELECT * FROM employee_tbl;
+----+--------+---------------------+--------+
| id | name   | date                | singin |
+----+--------+---------------------+--------+
|  1 | 小明 | 2016-04-22 15:25:33 |      1 |
|  2 | 小王 | 2016-04-20 15:25:47 |      3 |
|  3 | 小丽 | 2016-04-19 15:26:02 |      2 |
|  4 | 小王 | 2016-04-07 15:26:14 |      4 |
|  5 | 小明 | 2016-04-11 15:26:40 |      4 |
|  6 | 小明 | 2016-04-04 15:26:54 |      2 |
+----+--------+---------------------+--------+
6 rows in set (0.00 sec)

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:

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;
+--------+----------+
| name   | COUNT(*) |
+--------+----------+
| 小丽 |        1 |
| 小明 |        3 |
| 小王 |        2 |
+--------+----------+
3 rows in set (0.01 sec)

Verwenden Sie MIT ROLLUP

WITH ROLLUP kann dieselben Statistiken (SUM, AVG, COUNT...) auf der Grundlage von gruppierten Statistiken implementieren.

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

mysql> SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
+--------+--------------+
| name   | singin_count |
+--------+--------------+
| 小丽 |            2 |
| 小明 |            7 |
| 小王 |            7 |
| NULL   |           16 |
+--------+--------------+
4 rows in set (0.00 sec)

Der Datensatz NULL repräsentiert die Anzahl der Anmeldungen für alle.

Wir können Coalesce verwenden, um einen Namen festzulegen, der NUll, Coalesce-Syntax ersetzen kann:

select coalesce(a,b,c);

Parameterbeschreibung: wenn a==null, wähle b; wenn b==null, wähle c; wenn a!=null, wähle a; wenn abc null ist, gib null (bedeutungslos) zurück.

Wenn der Name im folgenden Beispiel leer ist, verwenden wir stattdessen die Summe:

mysql> SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
+--------------------------+--------------+
| coalesce(name, '总数') | singin_count |
+--------------------------+--------------+
| 小丽                   |            2 |
| 小明                   |            7 |
| 小王                   |            7 |
| 总数                   |           16 |
+--------------------------+--------------+
4 rows in set (0.01 sec)

Hoffnung Chen Weiliang Blog ( https://www.chenweiliang.com/ ) geteilt "MySQL-Summengruppe nach Verwendung? Detaillierte Erklärung von Group by Count in MySQL Database" hilfreich für Sie.

Willkommen, um den Link dieses Artikels zu teilen:https://www.chenweiliang.com/cwl-477.html

Willkommen im Telegrammkanal von Chen Weiliangs Blog, um die neuesten Updates zu erhalten!

🔔 Seien Sie der Erste, der den wertvollen „ChatGPT Content Marketing AI Tool Usage Guide“ im Kanal-Top-Verzeichnis erhält! 🌟
📚 Dieser Leitfaden enthält einen enormen Mehrwert. 🌟Dies ist eine seltene Gelegenheit, verpassen Sie sie nicht! ⏰⌛💨
Teilen und liken, wenn es euch gefällt!
Ihr Teilen und Ihre Likes sind unsere ständige Motivation!

 

发表 评论

Deine Email-Adresse wird nicht veröffentlicht. 必填 项 已 已 * 标注

nach oben scrollen