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

MySQL, Како да се користи збирна група според?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)

Блог на Hope Chen Weiliang ( https://www.chenweiliang.com/ ) сподели „Група збир на MySQL по употреба?“ Детално објаснување за група по број во базата на податоци MySQL“ ќе ви биде од помош.

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

Добредојдовте на Телеграмскиот канал на блогот на Чен Веилијанг за да ги добиете најновите ажурирања!

🔔 Бидете први што ќе го добиете вредниот „Водич за употреба на алатката за AI за маркетинг на содржина на ChatGPT“ во горниот директориум на каналот! 🌟
📚 Овој водич содржи огромна вредност, 🌟Ова е ретка можност, не ја пропуштајте! ⏰⌛💨
Споделете и лајкнете ако ви се допаѓа!
Вашето споделување и лајкови се наша континуирана мотивација!

 

评论

Вашата адреса за е-пошта нема да биде објавена. Се користат задолжителните полиња * Етикета

скролувајте до врвот