MySQL sum nhóm theo cách sử dụng? Giải thích chi tiết về nhóm theo số lượng trong cơ sở dữ liệu MySQL

MySQL Tổng nhóm theo cách sử dụng?Cơ sở dữ liệu MySQLGiải thích chi tiết về nhóm theo số lượng

Câu lệnh MySQL GROUP BY

Câu lệnh GROUP BY nhóm tập hợp kết quả dựa trên một hoặc nhiều cột.

Trên cột được nhóm, chúng ta có thể sử dụng các hàm COUNT, SUM, AVG, v.v.

NHÓM THEO cú pháp

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

Ví dụ minh họa

Ví dụ trong chương này sử dụng cấu trúc bảng và dữ liệu sau, trước khi sử dụng, chúng ta có thể nhập dữ liệu sau vào cơ sở dữ liệu.

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;

Sau khi nhập thành công, hãy thực thi câu lệnh SQL sau:

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)

Tiếp theo, chúng ta sử dụng câu lệnh GROUP BY để nhóm bảng dữ liệu theo tên và đếm xem mỗi người có bao nhiêu bản ghi:

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

Sử dụng VỚI ROLLUP

VỚI ROLLUP có thể thực hiện các thống kê giống nhau (SUM, AVG, COUNT ...) trên cơ sở thống kê được nhóm lại.

Ví dụ: chúng tôi nhóm bảng dữ liệu trên theo tên, sau đó đếm số lần mỗi người đã đăng nhập:

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)

Bản ghi NULL đại diện cho số lần đăng nhập cho mọi người.

Chúng ta có thể sử dụng liên kết để đặt tên có thể thay thế NUll, cú pháp liên kết:

select coalesce(a,b,c);

Mô tả tham số: nếu a == null, chọn b; nếu b == null, chọn c; nếu a! = Null, chọn a; nếu abc là null, trả về null (vô nghĩa).

Trong ví dụ sau nếu tên trống, chúng tôi sử dụng tổng thay thế:

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)

Hy vọng Chen Weiliang Blog ( https://www.chenweiliang.com/ ) đã chia sẻ "MySQL sum nhóm theo cách sử dụng? Giải thích chi tiết về Nhóm theo số lượng trong Cơ sở dữ liệu MySQL "rất hữu ích cho bạn.

Chào mừng bạn đến chia sẻ liên kết của bài viết này:https://www.chenweiliang.com/cwl-477.html

Chào mừng bạn đến với kênh Telegram trên blog của Chen Weiliang để cập nhật những thông tin mới nhất!

🔔 Hãy là người đầu tiên nhận được "Hướng dẫn sử dụng Công cụ AI tiếp thị nội dung ChatGPT" có giá trị trong thư mục trên cùng của kênh! 🌟
📚 Hướng dẫn này chứa đựng giá trị to lớn, 🌟Đây là cơ hội hiếm có, đừng bỏ lỡ! ⏰⌛💨
Chia sẻ và thích nếu bạn thích!
Chia sẻ và thích của bạn là động lực không ngừng của chúng tôi!

 

发表 评论

Địa chỉ email của bạn sẽ không được công bố. 项 已 * 标注

cuộn lên trên cùng