Директориум за статии
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
Добредојдовте на Телеграмскиот канал на блогот на Чен Веилијанг за да ги добиете најновите ажурирања!
📚 Овој водич содржи огромна вредност, 🌟Ова е ретка можност, не ја пропуштајте! ⏰⌛💨
Споделете и лајкнете ако ви се допаѓа!
Вашето споделување и лајкови се наша континуирана мотивација!