Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL: GROUP BY và COUNT theo ngày

Bạn có thể sử dụng mệnh đề GROUP BY kết hợp với hàm COUNT() để thực hiện việc này. Cú pháp cơ bản như sau:

SELECT cot_cua_ban1, cot_cua_ban2, ..., COUNT(*) AS ten_biet_danh 
FROM ten_bang_cua_ban 
GROUP BY cot_cua_ban1, cot_cua_ban2;

Ví dụ minh họa

Đầu tiên, tạo một bảng mẫu:

mysql> CREATE TABLE NhomVaDemTheoNgay (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> NgayDi DATE,
    -> ShopId INT,
    -> PRIMARY KEY(Id)
    -> );

Chèn một số dữ liệu mẫu:

mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-01-31', 10);
mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-02-01', 15);
mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-01-31', 10);
mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-02-01', 15);
mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-03-23', 20);
mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-04-21', 25);
mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-03-13', 20);
mysql> INSERT INTO NhomVaDemTheoNgay(NgayDi, ShopId) VALUES('2019-04-06', 25);

Hiển thị tất cả bản ghi:

mysql> SELECT * FROM NhomVaDemTheoNgay;

Kết quả:

+----+------------+--------+
| Id | NgayDi     | ShopId |
+----+------------+--------+
|  1 | 2019-01-31 |     10 |
|  2 | 2019-02-01 |     15 |
|  3 | 2019-01-31 |     10 |
|  4 | 2019-02-01 |     15 |
|  5 | 2019-03-23 |     20 |
|  6 | 2019-04-21 |     25 |
|  7 | 2019-03-13 |     20 |
|  8 | 2019-04-06 |     25 |
+----+------------+--------+

Truy vấn GROUP BY và COUNT theo ngày

mysql> SELECT NgayDi, ShopId, COUNT(*) AS TONG_SO_CHUYEN
    -> FROM NhomVaDemTheoNgay
    -> GROUP BY NgayDi, ShopId;

Kết quả:

+------------+--------+-------------+
| NgayDi     | ShopId | TONG_SO_CHUYEN |
+------------+--------+-------------+
| 2019-01-31 |     10 |           2 |
| 2019-02-01 |     15 |           2 |
| 2019-03-23 |     20 |           1 |
| 2019-04-21 |     25 |           1 |
| 2019-03-13 |     20 |           1 |
| 2019-04-06 |     25 |           1 |
+------------+--------+-------------+

Trong ví dụ này, dữ liệu được nhóm theo cả NgayDi và ShopId, sau đó đếm số lần xuất hiện của mỗi tổ hợp.