MySQL сума група по употреба? Детално објаснување на група по број во базата на податоци MySQL

Како да се користи SUM GROUP BY во MySQL ? Детално објаснување за GROUP BY COUNT во MySQL базата на податоци.

MySQL GROUP BY изјава

Изјавата GROUP BY групира множество резултати врз основа на една или повеќе колони.

Можеме да користиме функции како што се COUNT, SUM, AVG итн. на групирани колони.

ГРУПА ПО синтакса

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

Пример за демонстрација

Примерите во ова поглавје ја користат следната структура и податоци на табела Пред употреба, можеме да ги увеземе следните податоци во базата на податоци.

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;

Откако увозот е успешен, извршете ја следната 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)

Следно, ја користиме изјавата GROUP BY за да ја групираме табелата со податоци по име и да броиме колку записи има секое лице:

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

Употреба СО НАВИВАЊЕ

WITH ROLLUP може да ја врши истата статистика (SUM, AVG, COUNT...) врз основа на групирани статистички податоци.

На пример, ја групираме горната табела со податоци по име, а потоа броиме колку пати секое лице се најавува:

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 го означува бројот на најавувања за секого.

Можеме да користиме coalesce за да поставиме име што може да ја замени NUll синтаксата:

select coalesce(a,b,c);

Опис на параметарот: ако a==null, изберете b==null, изберете c, ако a!=null, изберете a.

Во следниот пример, ако името е празно, наместо тоа го користиме вкупниот број:

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)

Се надеваме дека статијата „MySQL SUM GROUP BY Usage? Детално објаснување на GROUP BY COUNT во MySQL базата на податоци“ споделена на блогот на Чен Вејлијанг ( https://www.chenweiliang.com/ ) ќе ви биде корисна.

Слободно споделете го линкот до овој напис: https://www.chenweiliang.com/cwl-477.html

За да отклучите повеќе скриени трикови🔑, добредојдени сте да се придружите на нашиот Телеграм канал!

Споделете и лајкнете ако ви се допаѓа! Вашите споделувања и лајкови се наша постојана мотивација!

 

评论

您的邮箱地址不会被公开。必填项已用*标注

Дојдете до врв