MySQL ກຸ່ມລວມໂດຍການນໍາໃຊ້? ຄໍາອະທິບາຍລາຍລະອຽດຂອງກຸ່ມໂດຍການນັບໃນຖານຂໍ້ມູນ MySQL

MySQL ລວມກຸ່ມໂດຍການນໍາໃຊ້?ຖານຂໍ້ມູນ MySQLການ​ອະ​ທິ​ບາຍ​ລະ​ອຽດ​ຂອງ​ກຸ່ມ​ໂດຍ​ການ​ນັບ​

MySQL GROUP BY ຄໍາຖະແຫຼງການ

ຄໍາຖະແຫຼງການ GROUP BY ຈັດກຸ່ມຜົນໄດ້ຮັບທີ່ກໍານົດໄວ້ໂດຍອີງໃສ່ຫນຶ່ງຫຼືຫຼາຍຖັນ.

ໃນຖັນກຸ່ມພວກເຮົາສາມາດໃຊ້ຟັງຊັນ COUNT, SUM, AVG, ແລະອື່ນໆ.

GROUP BY syntax

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)

ໃຊ້ກັບ ROLLUP

ດ້ວຍ 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, coalesce syntax:

select coalesce(a,b,c);

ລາຍລະອຽດພາລາມິເຕີ: ຖ້າ a==null, ເລືອກ b; ຖ້າ b==null, ເລືອກ c; ຖ້າ a!=null, ເລືອກ a; ຖ້າ abc ເປັນ null, ໃຫ້ກັບຄືນ null (ບໍ່ມີຄວາມຫມາຍ).

ໃນຕົວຢ່າງຕໍ່ໄປນີ້ຖ້າຊື່ຫວ່າງເປົ່າພວກເຮົາໃຊ້ຈໍານວນທັງຫມົດແທນ:

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)

ຫວັງ Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "ກຸ່ມ MySQL sum ໂດຍການນໍາໃຊ້? ຄໍາອະທິບາຍລາຍລະອຽດຂອງກຸ່ມໂດຍການນັບໃນຖານຂໍ້ມູນ MySQL" ແມ່ນເປັນປະໂຫຍດສໍາລັບທ່ານ.

ຍິນດີຕ້ອນຮັບແບ່ງປັນການເຊື່ອມຕໍ່ຂອງບົດຄວາມນີ້:https://www.chenweiliang.com/cwl-477.html

ຍິນດີຕ້ອນຮັບສູ່ຊ່ອງ Telegram ຂອງບລັອກຂອງ Chen Weiliang ເພື່ອຮັບອັບເດດຫຼ້າສຸດ!

🔔 ເປັນຜູ້ທຳອິດທີ່ໄດ້ຮັບ "ຄູ່ມືການໃຊ້ເຄື່ອງມືການຕະຫຼາດເນື້ອຫາ ChatGPT AI" ທີ່ມີຄຸນຄ່າໃນລາຍການທາງເທິງ! 🌟
📚ຄູ່ມືນີ້ມີຄຸນຄ່າອັນມະຫາສານ, 🌟ນີ້ເປັນໂອກາດທີ່ຫາຍາກ, ຢ່າພາດມັນ! ⏰⌛💨
Share and like ຖ້າມັກ!
ການ​ແບ່ງ​ປັນ​ແລະ​ການ​ຖືກ​ໃຈ​ຂອງ​ທ່ານ​ແມ່ນ​ການ​ຊຸກ​ຍູ້​ຢ່າງ​ຕໍ່​ເນື່ອງ​ຂອງ​ພວກ​ເຮົາ​!

 

评论评论

ທີ່ຢູ່ອີເມວຂອງທ່ານຈະບໍ່ຖືກເຜີຍແຜ່. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຖືກນໍາໃຊ້ * ປ້າຍ ກຳ ກັບ

ເລື່ອນໄປເທິງສຸດ