Grŵp swm MySQL yn ôl defnydd? Esboniad manwl o grŵp fesul cyfrif yng nghronfa ddata MySQL

MySQL Swm grŵp yn ôl defnydd?Cronfa ddata MySQLEsboniad manwl o grŵp fesul cyfrif

GRŴP MySQL GAN ddatganiad

Mae'r datganiad GRŴP BYTH yn grwpio'r set canlyniadau yn seiliedig ar un neu fwy o golofnau.

Ar y golofn wedi'i grwpio gallwn ddefnyddio swyddogaethau COUNT, SUM, AVG, ac ati.

GRWP GAN gystrawen

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

Arddangosiad enghreifftiol

Mae'r enghraifft yn y bennod hon yn defnyddio'r strwythur tabl a'r data canlynol: Cyn ei ddefnyddio, gallwn fewnforio'r data canlynol i'r gronfa ddata.

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;

Ar ôl i'r mewnforio fod yn llwyddiannus, gweithredwch y datganiad SQL canlynol:

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)

Nesaf rydym yn defnyddio’r datganiad GRŴP YN ÔL i grwpio’r tabl data yn ôl enw a chyfrif faint o gofnodion sydd gan bob person:

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

Defnyddiwch GYDA ROLLUP

Gall GYDA ROLLUP weithredu'r un ystadegau (SUM, AVG, COUNT...) ar sail ystadegau wedi'u grwpio.

Er enghraifft, rydym yn grwpio'r tabl data uchod yn ôl enw, ac yna'n cyfrif y nifer o weithiau y mae pob person wedi mewngofnodi:

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)

Mae'r cofnod NULL yn cynrychioli nifer y mewngofnodi ar gyfer pawb.

Gallwn ddefnyddio cyfuniad i osod enw a all gymryd lle cystrawen NUll, coalesce:

select coalesce(a,b,c);

Disgrifiad o'r paramedr: os yw a==null, dewiswch b; os b==null, dewiswch c; os yw a!=null, dewiswch a; os yw abc yn null, dychwelwch null (diystyr).

Yn yr enghraifft ganlynol os yw'r enw'n wag rydym yn defnyddio'r cyfanswm yn lle hynny:

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 Chen Weiliang Gobeithio ( https://www.chenweiliang.com/ ) a rennir "Grŵp swm MySQL yn ôl defnydd? Mae Eglurhad Manwl o Grŵp fesul Cyfrif yng Nghronfa Ddata MySQL" yn ddefnyddiol i chi.

Croeso i chi rannu dolen yr erthygl hon:https://www.chenweiliang.com/cwl-477.html

Croeso i sianel Telegram o blog Chen Weiliang i gael y diweddariadau diweddaraf!

🔔 Byddwch y cyntaf i gael y "Canllaw Defnydd Offer AI Marchnata Cynnwys ChatGPT" gwerthfawr yng nghyfeiriadur uchaf y sianel! 🌟
📚 Mae'r canllaw hwn yn cynnwys gwerth enfawr, 🌟Mae hwn yn gyfle prin, peidiwch â'i golli! ⏰⌛💨
Rhannwch a hoffwch os hoffech chi!
Eich rhannu a'ch hoff bethau yw ein cymhelliant parhaus!

 

发表 评论

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. 必填 项 已 用 * Label

sgroliwch i'r brig