Součtová skupina MySQL podle použití? Podrobné vysvětlení skupiny podle počtu v databázi MySQL

MySQL Sečíst skupinu podle použití?MySQL databázePodrobné vysvětlení skupiny podle počtu

Příkaz MySQL GROUP BY

Příkaz GROUP BY seskupuje sadu výsledků na základě jednoho nebo více sloupců.

Na seskupeném sloupci můžeme použít funkce COUNT, SUM, AVG atd.

GROUP BY syntaxe

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

Příklad demonstrace

V příkladu v této kapitole je použita následující struktura tabulek a dat Před použitím můžeme importovat následující data do databáze.

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;

Po úspěšném importu proveďte následující příkaz SQL:

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)

Dále použijeme příkaz GROUP BY k seskupení datové tabulky podle názvu a spočítáme, kolik záznamů má každá osoba:

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

Použijte S ROLLUP

WITH ROLLUP může implementovat stejné statistiky (SUM, AVG, COUNT...) na základě seskupených statistik.

Například seskupujeme výše uvedenou datovou tabulku podle názvu a poté spočítáme, kolikrát se každá osoba přihlásila:

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)

Záznam NULL představuje počet přihlášení pro každého.

Můžeme použít coalesce k nastavení názvu, který může nahradit NUll, sloučit syntaxi:

select coalesce(a,b,c);

Popis parametru: pokud a==null, zvolte b; pokud b==null, zvolte c; pokud a!=null, vyberte a; pokud je abc null, vraťte hodnotu null (nemá smysl).

Pokud je v následujícím příkladu název prázdný, použijeme místo něj součet:

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)

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) sdílené „Součtová skupina MySQL podle použití? Podrobné vysvětlení skupiny podle počtu v databázi MySQL“ je pro vás užitečné.

Vítejte u sdílení odkazu na tento článek:https://www.chenweiliang.com/cwl-477.html

Vítejte na telegramovém kanálu blogu Chen Weiliang, kde získáte nejnovější aktualizace!

🔔 Buďte první, kdo získá cenný „Průvodce používáním nástroje AI pro obsahový marketing ChatGPT“ v hlavním adresáři kanálu! 🌟
📚 Tento průvodce má obrovskou hodnotu, 🌟Toto je vzácná příležitost, nenechte si ji ujít! ⏰⌛💨
Sdílejte a lajkujte, pokud se vám líbí!
Vaše sdílení a lajky jsou naší neustálou motivací!

 

发表 评论

Vaše e-mailová adresa nebude zveřejněna. 必填 项 已 用 * 标注

滚动 到 顶部