Câu lệnh SQL GROUP BY xuất hiện trong các hàm tổng hợp. Nó được sử dụng để đối chiếu dữ liệu bạn chọn từ một truy vấn theo một cột cụ thể. Bạn có thể chỉ định nhiều cột sẽ được nhóm lại bằng cách sử dụng câu lệnh GROUP BY.
Khi bạn đang làm việc với các hàm tổng hợp trong SQL, bạn thường phải nhóm các hàng lại với nhau theo các giá trị cột chung.
Ví dụ:giả sử bạn muốn nhận danh sách tên chi nhánh cho doanh nghiệp của mình. Bên cạnh thông tin này, bạn muốn xem số lượng nhân viên làm việc cho các chi nhánh đó. Bạn sẽ cần sử dụng một hàm tổng hợp và nhóm theo tên chi nhánh.
Đó là nơi mà GROUP BY của SQL mệnh đề đi kèm. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách sử dụng GROUP BY mệnh đề.
Trình làm mới các chức năng tổng hợp
Thông thường — khi bạn đang làm việc với cơ sở dữ liệu — bạn sẽ không muốn xem dữ liệu thực tế trong cơ sở dữ liệu. Thay vào đó, bạn có thể muốn thông tin về dữ liệu. Ví dụ:bạn có thể muốn biết số lượng sản phẩm độc đáo mà doanh nghiệp của bạn bán hoặc điểm tối đa trên bảng xếp hạng.
Có một số hàm được tích hợp sẵn cho SQL cho phép bạn có được thông tin này. Đây được gọi là các hàm tổng hợp.
Ví dụ:giả sử bạn muốn tìm hiểu có bao nhiêu nhân viên là cộng tác viên bán hàng, bạn có thể sử dụng COUNT chức năng. COUNT hàm đếm và trả về số hàng đáp ứng một bộ tiêu chí cụ thể. Các hàm tổng hợp khác bao gồm SUM, AVG, MIN và MAX.
Nếu bạn đang muốn tìm hiểu thêm về các hàm tổng hợp, hãy đọc hướng dẫn về các hàm tổng hợp trong SQL của chúng tôi.
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
NHÓM SQL THEO
Mệnh đề GROUP BY trong SQL đối chiếu các hàng. Mệnh đề GROUP BY thường gặp trong các truy vấn sử dụng các hàm tổng hợp như MIN và MAX. Câu lệnh GROUP BY cho SQL biết cách tổng hợp thông tin trong bất kỳ cột không tổng hợp nào mà bạn đã truy vấn.
Cú pháp cho câu lệnh GROUP BY là:
SELECT COUNT(column1_name), column2_name FROM table1_name GROUP BY column2_name;
Chúng tôi đã sử dụng một hàm tổng hợp trong truy vấn của mình và chỉ định một cột khác.
Trong bất kỳ truy vấn nào thuộc trường hợp này, chúng ta cần sử dụng câu lệnh GROUP BY. Câu lệnh GROUP BY cho SQL biết cách hiển thị dữ liệu nhánh ngay cả khi nó nằm ngoài hàm tổng hợp. Bạn cần nhóm theo bảng không có trong chức năng tổng hợp.
Mệnh đề GROUP BY chỉ được sử dụng trong câu lệnh SQL SELECT.
Hãy xem ví dụ về mệnh đề GROUP BY trong SQL.
Ví dụ GROUP BY SQL
Giả sử chúng tôi muốn tìm tổng số nhân viên với mỗi chức danh được trao cho lực lượng lao động. Nói cách khác, chúng tôi muốn biết chúng tôi có bao nhiêu cộng tác viên bán hàng, chúng tôi có bao nhiêu giám đốc tiếp thị, v.v.
Chúng tôi có thể sử dụng truy vấn sau để lấy thông tin này:
SELECT title, COUNT(title) FROM employees GROUP BY title;
Truy vấn trả về nhiều bản ghi:
title | số lượng |
Nhân viên kinh doanh cấp cao | 1 |
Nhân viên bán hàng | 4 |
Phó Giám đốc Kinh doanh | 1 |
Giám đốc Tiếp thị | 1 |
(4 hàng)
GROUP BY của chúng tôi truy vấn đã trả về một danh sách các chức danh duy nhất do nhân viên nắm giữ. Chúng ta có thể thấy số lượng nhân viên giữ chức danh đó bên cạnh mỗi chức danh.
Khi nào bạn nên sử dụng GROUP BY trong SQL?
A GROUP BY mệnh đề chỉ cần thiết khi bạn đang muốn lấy thêm thông tin ngoài những gì được trả về từ hàm tổng hợp. Chúng ta đã thảo luận về vấn đề này trước đó một chút.
Nếu bạn đang muốn có được số lượng khách hàng mà mình có, bạn chỉ cần chạy một truy vấn thông thường. Dưới đây là một ví dụ về truy vấn sẽ trả về thông tin này:
SELECT COUNT(name) FROM customers;
Truy vấn của chúng tôi nhóm kết quả và trả về:
count |
7 |
(1 hàng)
Nếu bạn muốn biết có bao nhiêu khách hàng trên mỗi gói khách hàng thân thiết của mình, bạn cần sử dụng GROUP BY tuyên bố. Dưới đây là ví dụ về truy vấn sẽ nhận được danh sách các gói khách hàng thân thiết và số lượng khách hàng trên mỗi gói:
SELECT loyalty_plan, COUNT(loyalty_plan) FROM customers GROUP BY loyalty_plan;
Truy vấn của chúng tôi thu thập dữ liệu. Sau đó, truy vấn của chúng tôi trả về:
yal_plan | số lượng |
Vàng | 1 |
Không có | 3 |
Bạc | 1 |
Đồng | 2 |
(4 hàng)
Nhóm SQL theo nhiều cột
Nếu muốn, chúng tôi có thể thực hiện GROUP BY trên nhiều cột. Ví dụ:giả sử chúng tôi muốn có danh sách bao nhiêu nhân viên chúng tôi có tại mỗi chi nhánh với các chức danh nhất định. Chúng tôi có thể truy xuất dữ liệu này bằng cách sử dụng truy vấn sau:
SELECT branch, title, COUNT(title) FROM employees GROUP BY branch, title;
Tập hợp kết quả truy vấn của chúng tôi cho thấy:
chi nhánh | tiêu đề | số lượng |
Stamford | Nhân viên bán hàng | 1 |
Albany | Phó Giám đốc Kinh doanh | 1 |
San Francisco | Nhân viên bán hàng | 1 |
San Francisco | Nhân viên kinh doanh cấp cao | 1 |
Albany | Giám đốc Tiếp thị | 1 |
Boston | Nhân viên bán hàng | 2 |
(6 hàng)
Truy vấn của chúng tôi tạo ra một danh sách các chức danh mà mỗi nhân viên nắm giữ. Chúng ta có thể thấy số người nắm giữ chức danh đó. Dữ liệu của chúng tôi được nhóm theo chi nhánh mà mỗi nhân viên làm việc và chức danh của họ.
Kết luận
NHÓM SQL THEO mệnh đề cần thiết trong bất kỳ câu lệnh nào trong đó một hàm tổng hợp được sử dụng và một bảng bổ sung được truy vấn. Bạn nên nhóm theo cột không được đề cập trong hàm tổng hợp.
Bạn đang tìm kiếm một thử thách? Viết một báo cáo để biết có bao nhiêu nhân viên làm việc tại mỗi chi nhánh.
Bảng được gọi là "nhân viên" và cột trong đó tên chi nhánh được lưu trữ là "chi nhánh". Quay lại hướng dẫn ở trên và xem truy vấn của bạn có hợp lý hay không dựa trên những gì chúng ta đã thảo luận.
Chúng tôi đã viết một hướng dẫn đầy đủ về cách học SQL. Hướng dẫn này phù hợp cho người mới bắt đầu và những người đã và đang trên đường làm chủ SQL. Hãy xem nó trên trang Cách học SQL của chúng tôi.