Groupe de somme MySQL par utilisation ? Explication détaillée du groupe par nombre dans la base de données MySQL

MySQL Somme groupe par utilisation ?Base de données MySQLExplication détaillée du groupe par nombre

Instruction MySQL GROUP BY

L'instruction GROUP BY regroupe le jeu de résultats en fonction d'une ou de plusieurs colonnes.

Sur la colonne groupée, nous pouvons utiliser les fonctions COUNT, SUM, AVG, etc.

Syntaxe GROUP BY

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

Exemple de démonstration

L'exemple de ce chapitre utilise la structure de table et les données suivantes. Avant de l'utiliser, nous pouvons importer les données suivantes dans la base de données.

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;

Une fois l'importation réussie, exécutez l'instruction SQL suivante :

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)

Ensuite, nous utilisons l'instruction GROUP BY pour regrouper la table de données par nom et compter le nombre d'enregistrements de chaque personne :

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

Utiliser AVEC ROLLUP

WITH ROLLUP peut implémenter les mêmes statistiques (SUM, AVG, COUNT...) sur la base de statistiques groupées.

Par exemple, nous regroupons le tableau de données ci-dessus par nom, puis comptons le nombre de fois où chaque personne s'est connectée :

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)

L'enregistrement NULL représente le nombre de connexions pour tout le monde.

Nous pouvons utiliser coalesce pour définir un nom qui peut remplacer NUll, la syntaxe coalesce :

select coalesce(a,b,c);

Description du paramètre : si a==null, choisissez b ; si b==null, choisissez c ; ​​si a!=null, choisissez a ; si abc est null, retournez null (sans signification).

Dans l'exemple suivant, si le nom est vide, nous utilisons le total à la place :

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)

J'espère que le blog de Chen Weiliang ( https://www.chenweiliang.com/ ) partagé "Groupe de somme MySQL par utilisation ? Une explication détaillée du groupe par nombre dans la base de données MySQL" vous sera utile.

Bienvenue à partager le lien de cet article :https://www.chenweiliang.com/cwl-477.html

Bienvenue sur la chaîne Telegram du blog de Chen Weiliang pour obtenir les dernières mises à jour !

🔔 Soyez le premier à obtenir le précieux « Guide d'utilisation de l'outil d'IA de marketing de contenu ChatGPT » dans le répertoire supérieur de la chaîne ! 🌟
📚 Ce guide contient une valeur énorme, 🌟C'est une opportunité rare, ne la manquez pas ! ⏰⌛💨
Partagez et likez si vous aimez !
Vos partages et likes sont notre motivation continue !

 

发表 评论

Votre adresse email ne sera pas publiée. 项 已 用 * 标注

到 顶部