MySQL batuketa taldea erabileraren arabera? Taldearen azalpen zehatza MySQL datu-basean

MySQL Taldea batuketa erabileraren arabera?MySQL datu-baseaTaldearen azalpen zehatza zenbaketaren arabera

MySQL GROUP BY instrukzioa

GROUP BY adierazpenak zutabe batean edo gehiagotan oinarrituta taldekatzen du emaitza multzoa.

Taldekako zutabean ZENBATU, BURUZ, BATUZ, etab. funtzioak erabil ditzakegu.

GROUP BY sintaxia

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

Adibide erakustaldia

Kapitulu honetako adibideak taularen egitura eta datu hauek erabiltzen ditu Erabili aurretik, datu hauek datu-basera inporta ditzakegu.

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;

Inportazioa arrakastatsua izan ondoren, exekutatu SQL instrukzio hau:

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)

Ondoren, GROUP BY adierazpena erabiltzen dugu datu-taula izenaren arabera taldekatzeko eta zenbat erregistro dituen pertsona bakoitzak:

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

Erabili ROLLUPAREKIN

WITH ROLLUP-ek estatistika berdinak (SUM, AVG, COUNT...) inplementa ditzake taldekako estatistiketan oinarrituta.

Adibidez, goiko datu-taula izenaren arabera taldekatzen dugu, eta gero pertsona bakoitzak saioa hasi duen kopurua zenbatzen dugu:

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)

NULL erregistroak guztientzako saio-hasiera kopurua adierazten du.

Coalesce erabil dezakegu NUll, coalesce sintaxia ordezka dezakeen izen bat ezartzeko:

select coalesce(a,b,c);

Parametroaren deskribapena: a==null bada, aukeratu b; b==null bada, aukeratu c; a!=null bada, aukeratu a; abc null bada, itzuli null (esangurarik gabekoa).

Ondorengo adibidean izena hutsik badago, guztira erabiliko dugu ordez:

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)

Hope Chen Weiliang bloga ( https://www.chenweiliang.com/ ) partekatu du "MySQL batura taldea erabileraren arabera? MySQL datu-basean Taldearen Azalpen Xehatua" lagungarria da.

Ongi etorri artikulu honen esteka partekatzera:https://www.chenweiliang.com/cwl-477.html

Ongi etorri Chen Weiliang-en blogeko Telegram kanalera azken eguneraketak jasotzeko!

🔔 Izan zaitez kanalaren goiko direktorioan "ChatGPT Content Marketing AI Tool Erabilera Gida" baliotsua lortzen lehena! 🌟
📚 Gida honek balio handia du, 🌟Aukera arraroa da hau, ez galdu! ⏰⌛💨
Partekatu eta gustatzen bazaizu!
Zure partekatzea eta gustukoak dira gure etengabeko motibazioa!

 

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

joan goian