Khi có một lượng lớn dữ liệu, chúng ta thường thấy có khả năng thao tác dữ liệu theo yêu cầu của mình. Mệnh đề GROUP BY là một trong những câu lệnh như vậy trong SQL, được sử dụng để nhóm dữ liệu dựa trên một vài cột hoặc theo điều kiện. Trong bài viết này về Câu lệnh GROUP BY trong SQL, tôi sẽ thảo luận một số cách để sử dụng câu lệnh GROUP BY theo trình tự sau:
- Câu lệnh GROUP BY
- Cú pháp
- Ví dụ:
- Sử dụng GROUP BY trên một cột
- NHÓM THEO trên nhiều cột
- Sử dụng GROUP BY với ORDER BY
- GROUP BY với mệnh đề HAVING
- Sử dụng GROUP BY với JOINS
Trước khi chuyển sang các ví dụ về cách sử dụng mệnh đề GROUP BY, chúng ta hãy hiểu GROUP BY trong SQL là gì và cú pháp của nó.
Câu lệnh SQL GROUP BY
Câu lệnh này được sử dụng để nhóm các bản ghi có cùng giá trị. Câu lệnh GROUP BY thường được sử dụng với các hàm tổng hợp để nhóm các kết quả theo một hoặc nhiều cột. Ngoài ra, mệnh đề GROUP BY cũng được sử dụng với mệnh đề HAVING và JOINS để nhóm tập kết quả dựa trên các điều kiện.
NHÓM SQL THEO Cú pháp
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
Tại đây, bạn có thể thêm các hàm tổng hợp trước tên cột và cũng có một mệnh đề HAVING ở cuối câu lệnh để đề cập đến một điều kiện. Tiếp theo, trong bài viết này về SQL GROUP BY, chúng ta hãy hiểu cách triển khai câu lệnh này.
Ví dụ:
Để bạn hiểu rõ hơn, tôi đã chia các ví dụ thành các phần sau:
-
- Sử dụng GROUP BY trên một cột
- NHÓM THEO trên nhiều cột
- Sử dụng GROUP BY với ORDER BY
- GROUP BY với mệnh đề HAVING
- Sử dụng GROUP BY với JOINS
Tôi sẽ xem xét bảng sau để giải thích cho bạn các ví dụ:
EmpID | Tên miền | EmpEmail | Số điện thoại | Mức lương | Thành phố |
1 | Nidhi | 9955669999 | 50000 | Mumbai | |
2 | Anay | 9875679861 | 55000 | Pune | |
3 | Rahul | 9876543212 | 35000 | Delhi | |
4 | Sonia | 9876543234 | 35000 | Delhi | |
5 | Akash | 9866865686 | 25000 | Mumbai |
Hãy để chúng tôi xem xét từng người trong số họ.
Sử dụng SQL GROUP BY trên một cột
Ví dụ:
Viết truy vấn để lấy số lượng nhân viên ở mỗi thành phố.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City;
Đầu ra:
Bạn sẽ thấy kết quả sau:
Đếm (EmpID) | Thành phố |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Sử dụng SQL GROUP BY trên nhiều cột
Ví dụ:
Viết truy vấn để truy xuất số lượng nhân viên có mức lương khác nhau ở mỗi thành phố.
SELECT City, Salary, Count(*) FROM Employees GROUP BY City, Salary;
Đầu ra:
Bảng sẽ có dữ liệu sau:
Thành phố | Mức lương | Đếm (*) |
Delhi | 35000 | 2 |
Mumbai | 25000 | 1 |
Mumbai | 50000 | 1 |
Pune | 55000 | 1 |
Sử dụng SQL GROUP BY với ORDER BY
Khi chúng ta sử dụng câu lệnh SQL GROUP BY với mệnh đề ORDER BY, các giá trị được sắp xếp theo thứ tự tăng dần hoặc giảm dần.
Ví dụ:
Viết truy vấn để lấy số lượng nhân viên ở mỗi thành phố, được sắp xếp theo thứ tự giảm dần.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City ORDER BY COUNT(EmpID) DESC;
Đầu ra:
Bảng sẽ có dữ liệu sau:
Đếm (EmpID) | Thành phố |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Sử dụng SQL GROUP BY với mệnh đề HAVING
Câu lệnh SQL GROUP BY được sử dụng với mệnh đề ‘HAVING’ để đề cập đến các điều kiện về nhóm. Ngoài ra, vì chúng tôi không thể sử dụng các hàm tổng hợp với mệnh đề WHERE, chúng tôi phải sử dụng mệnh đề 'HAVING' để sử dụng các hàm tổng hợp với GROUP BY.
Ví dụ:
Viết truy vấn để lấy số lượng nhân viên ở mỗi thành phố, có mức lương> 15000
SELECT COUNT(EmpID), City FROM Employees GROUP BY City HAVING SALARY > 15000;
Đầu ra:
Vì tất cả đều là bản ghi trong bảng Nhân viên có mức lương> 15000, chúng ta sẽ thấy bảng sau là đầu ra:
Đếm (EmpID) | Thành phố |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Sử dụng GROUP BY với JOINS
JOINS là các câu lệnh SQL được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên một cột có liên quan giữa các bảng đó. Chúng ta có thể sử dụng câu lệnh SQL GROUP BY để nhóm tập kết quả dựa trên một cột / các cột. Hãy xem xét các bảng dưới đây để thực thi các câu lệnh JOIN với mệnh đề GROUP BY trong SQL.
Bảng Dự án:
ProjectID | EmpID | ClientID | Ngày dự án |
2345 | 1 | 4 | 26-01-2019 |
9876 | 2 | 5 | 28-02-2019 |
3456 | 3 | 6 | 12-03-2019 |
Bảng Khách hàng:
ClientID | ClientName |
4 | Sanjana |
5 | Rohan |
6 | Arun |
Ví dụ
Viết truy vấn để liệt kê số lượng dự án được yêu cầu bởi mỗi khách hàng:
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID GROUP BY ClientName;
Đầu ra:
Bảng sẽ có dữ liệu sau:
ClientName | Dự án được Yêu cầu |
Arun | 1 |
Rohan | 1 |
Sanjana | 1 |
Với điều đó, chúng ta sẽ kết thúc bài viết NHÓM NHÓM CỦA SQL. Kiểm tra cái này Đào tạo chứng chỉ MySQL DBA của Edureka, một công ty học tập trực tuyến đáng tin cậy với mạng lưới o f hơn 250.000 người học hài lòng trên toàn cầu. Khóa học này đào tạo bạn về các khái niệm cốt lõi cũng như các công cụ và kỹ thuật nâng cao để quản lý dữ liệu và quản trị Cơ sở dữ liệu MySQL. Nó bao gồm việc học thực hành về các khái niệm như MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, v.v. Kết thúc khóa đào tạo, bạn sẽ có thể tạo và quản trị Cơ sở dữ liệu MySQL của riêng mình và quản lý dữ liệu.
Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết “SQL GROUP BY” này và chúng tôi sẽ liên hệ lại với bạn sớm nhất có thể.