Mệnh đề group by trong SQL cho phép bạn tổng hợp các bản ghi thành một tập hợp các nhóm như được chỉ định trong các cột
Hãy để chúng tôi khám phá cách chúng tôi có thể sử dụng nhóm thông qua nhiều cột
cú pháp
Chúng ta có thể diễn đạt cú pháp như hình bên dưới
CHỌN cột1 , cột2
TỪ TABLE_NAME
WHERE [ điều kiện ]
NHÓM BỞI cột1 , cột2
ĐẶT HÀNG BẰNG cột1 , cột2
Hãy để chúng tôi minh họa cách chúng ta có thể sử dụng mệnh đề group by
ví dụ 1
Hãy xem xét bảng dưới đây
Chúng tôi có thể nhóm các bản ghi theo một cột, như được hiển thị trong truy vấn bên dưới
CHỌN tên_sản phẩm , ĐẾM[*]
TỪ sản phẩm
NHÓM BỞI product_name;
Truy vấn trên yêu cầu SQL nhóm tất cả các hàng có cùng tên_sản phẩm thành một nhóm duy nhất. Sau đó, chúng tôi sử dụng hàm đếm để xác định có bao nhiêu hàng trong nhóm đó
Đoạn mã trên sẽ trả về đầu ra như được hiển thị
ví dụ 2
Nhưng còn việc nhóm qua nhiều cột thì sao?
Một truy vấn ví dụ được cung cấp dưới đây
CHỌN PRODUCT_NAME ,
SỐ LƯỢNG ,
ĐẾM[*]
TỪ SẢN PHẨM
NHÓM BỞI PRODUCT_NAME ,
SỐ LƯỢNG;
Trong trường hợp này, SQL sẽ nhóm dữ liệu nếu giá trị của cả tên_sản_phẩm và số_lượng giống nhau
Đoạn mã trên sẽ trả về truy vấn như được hiển thị
Ghi chú. Vì quả cam đầu tiên có số lượng là 120 và quả cam thứ hai có số lượng là 100 nên SQL không xếp chúng vào cùng một nhóm
Hôm nay, Chúng tôi muốn chia sẻ với các bạn nhóm mysql theo nhiều cột. Trong bài đăng này, chúng tôi sẽ hiển thị cho bạn nhóm sql theo nhiều giá trị, hãy nghe nhóm sql theo nhiều cột khác nhau, chúng tôi sẽ cung cấp cho bạn bản demo và ví dụ để thực hiện. Trong bài đăng này, chúng ta sẽ tìm hiểu về Nhóm Sql theo nhiều cột với một ví dụ
Nhóm MySQL theo nhiều cột
nội dung
Trong ví dụ này, chúng tôi sẽ sử dụng Nhiều cột. Đầu tiên, nó nhóm các hàng theo từng Vị trí và sau đó là Sửa đổi. Tiếp theo, truy vấn sql này tìm Tổng thu nhập và Tổng số tiền bảo trì trong mỗi nhóm
ví dụ 1. nhóm mysql theo nhiều cột
SELECT Position, Modification, SUM[Earning], SUM[Maintenance] FROM `tamilblasters`.member GROUP BY Position, Modification;
Tuy nhiên, từ phần trên, tôi đã nhóm theo Vị trí, các giá trị cột đang lặp lại. Đó là bởi vì tôi đã sử dụng các cột Vị trí và Sửa đổi trong mệnh đề nhóm
Trong bảng order
, bạn có các cột order_date
, product_id
, customer_id
và number
. Bạn muốn đếm số lượng sản phẩm được mua bởi mỗi khách hàng mỗi ngày
Bảng order
trông như thế này
Giải pháp
SELECT order_date, customer_id, SUM[number] AS products_number FROM order
Kết quả là
order_datecustomer_idproducts_number2020-11-26322020-11-27312020-11-262122020-11-25142020-11-2612Thảo luận
Để nhóm theo hai cột, chỉ cần sử dụng GROUP BY
với hai cột. Tên cột phải được liệt kê sau từ khóa GROUP BY
và được phân tách bằng dấu phẩy. Các nhóm sẽ được tạo dựa trên giá trị của cả hai cột; . g. ['2020-11-25', 1]
]. Nhìn vào bảng dưới đây, trong đó mỗi nhóm được trình bày bằng một màu khác nhau
Nếu một hoặc cả hai cột có giá trị order
0, các giá trị này được coi là một nhóm riêng biệt [e. g. , order
1, order
2 hoặc order
3]
Mặt khác, nếu có order
4 trong một cột mà chúng tôi áp dụng hàm tổng hợp, thì các giá trị order
0 chỉ đơn giản là bị bỏ qua. [Trong ví dụ này, hàm tổng hợp là order
6 và cột là number
]. Nếu chúng ta có các giá trị số 2, 1 và NULL cho một trong các nhóm, thì order
8 sẽ bằng order
9 [order_date
0 và order_date
1 được cộng lại với nhau và order
0 bị bỏ qua. ]
Tương tự, bạn có thể nhóm theo số lượng cột bất kỳ – chỉ cần viết tên cột trong mệnh đề GROUP BY
và phân tách chúng bằng dấu phẩy