MySQL sum group ayon sa paggamit? Detalyadong paliwanag ng pangkat ayon sa bilang sa database ng MySQL

MySQL Isama ang pangkat ayon sa paggamit?MySQL databaseDetalyadong paliwanag ng pangkat ayon sa bilang

MySQL GROUP BY statement

Pinagpapangkat ng GROUP BY statement ang set ng resulta batay sa isa o higit pang column.

Sa nakagrupong column maaari naming gamitin ang mga function na COUNT, SUM, AVG, atbp.

GROUP BY syntax

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

Halimbawang pagpapakita

Ang halimbawa sa kabanatang ito ay gumagamit ng sumusunod na istraktura ng talahanayan at data. Bago ito gamitin, maaari nating i-import ang sumusunod na data sa database.

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;

Matapos matagumpay ang pag-import, isagawa ang sumusunod na SQL statement:

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)

Susunod na ginagamit namin ang GROUP BY na pahayag upang igrupo ang talahanayan ng data ayon sa pangalan at bilangin kung gaano karaming mga tala ang bawat tao ay mayroon:

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

Gamitin WITH ROLLUP

Maaaring ipatupad ng WITH ROLLUP ang parehong mga istatistika (SUM, AVG, COUNT...) batay sa mga nakagrupong istatistika.

Halimbawa, pinapangkat namin ang talahanayan ng data sa itaas ayon sa pangalan, at pagkatapos ay binibilang ang dami ng beses na naka-log in ang bawat tao:

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)

Ang record na NULL ay kumakatawan sa bilang ng mga login para sa lahat.

Maaari naming gamitin ang coalesce upang magtakda ng isang pangalan na maaaring palitan ang NUll, coalesce syntax:

select coalesce(a,b,c);

Paglalarawan ng parameter: kung a==null, piliin ang b; kung b==null, piliin ang c; kung a!=null, piliin ang a; kung ang abc ay null, ibalik ang null (walang kahulugan).

Sa sumusunod na halimbawa kung walang laman ang pangalan, ginagamit namin ang kabuuan sa halip:

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 Blog ( https://www.chenweiliang.com/ ) ibinahagi ang "MySQL sum group ayon sa paggamit? Ang Detalyadong Paliwanag ng Pangkat ayon sa Bilang sa MySQL Database" ay nakakatulong sa iyo.

Maligayang pagdating upang ibahagi ang link ng artikulong ito:https://www.chenweiliang.com/cwl-477.html

Maligayang pagdating sa Telegram channel ng blog ni Chen Weiliang para makuha ang pinakabagong mga update!

🔔 Maging una upang makuha ang mahalagang "ChatGPT Content Marketing AI Tool Usage Guide" sa direktoryo ng nangungunang channel! 🌟
📚 Ang gabay na ito ay naglalaman ng malaking halaga, 🌟Ito ay isang bihirang pagkakataon, huwag palampasin ito! ⏰⌛💨
Share and like kung gusto mo!
Ang iyong pagbabahagi at pag-like ay ang aming patuloy na pagganyak!

 

发表 评论

Ang iyong email address ay hindi mai-publish. 必填 项 已 用 * Tatak

mag-scroll sa itaas