Gom Nhóm Dữ Liệu Với GROUP BY Trong SQL - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Mệnh đề GROUP BY
- 2 Mệnh đề Having
Trong SQL, mệnh đề GROUP BY được sử dụng để gom nhóm các bản ghi có cùng dữ liệu tại một số cột cụ thể thành một nhóm. Tức là nếu một cột cụ thể của các dòng khác nhau có giá trị giống nhau thì chúng sẽ được sắp xếp thành một nhóm.
Một số lưu ý:
- Mệnh đề GROUP BY được sử dụng với câu lệnh SELECT.
- Trong SQL, mệnh đề GROUP BY được đặt sau mệnh đề WHERE.
- Trong SQL, mệnh đề GROUP BY được đặt trước mệnh đề ORDER BY nếu chúng được sử dụng chung.
Mệnh đề GROUP BY
Cú pháp
SELECT column1, function_name(column2) FROM table_name WHERE condition GROUP BY column1, column2 ORDER BY column1, column2; function_name: Tên của các hàm, SUM() , AVG(). table_name:tên của bảng condition:Điều kiện.Ví chụ cho Table Employee có cấu trúc và dữ liệu như sau:
| SI NO | NAME | SALARY | AGE |
| 1 | Harsh | 2000 | 19 |
| 2 | Dhanraj | 3000 | 20 |
| 3 | Dhanraj | 1500 | 19 |
| 4 | Harsh | 3500 | 19 |
| 5 | Ashish | 1500 | 19 |
Và bảng Student
| SUBJECT | YEAR | NAME |
| English | 1 | Harsh |
| English | 1 | Pratik |
| English | 1 | Ramesh |
| English | 2 | Ashish |
| English | 2 | Suresh |
| Mathematics | 1 | Deepak |
| Mathematics | 1 | Sayan |
Ví dụ nhóm theo một cột – nhóm tất cả các hàng có cùng giá trị của chỉ cột cụ thể đó trong một nhóm. Hãy xem xét truy vấn như hình dưới đây:
SELECT NAME, SUM(SALARY) FROM Employee GROUP BY NAME;Output
| Name | Salary |
| Ashish | 3000 |
| Dhanraj | 3000 |
| Harsh | 5500 |
Như bạn có thể thấy trong kết quả ở trên, các hàng có NAME trùng lặp được nhóm dưới cùng một NAME và SALARY tương ứng của chúng là tổng SALARY của các hàng trùng lặp. Hàm SUM () của SQL được sử dụng ở đây để tính tổng.
Ví dụ nhóm theo nhiều cột như GROUP BY column1, column2 – Điều này có nghĩa là đặt tất cả các hàng có cùng giá trị của cả cột column1 và column2 trong một nhóm. Hãy xem xét truy vấn dưới đây:
SELECT SUBJECT, YEAR, Count(*) FROM Student GROUP BY SUBJECT, YEAR;Output
| Subject | Year | Count |
| English | 1 | 3 |
| English | 2 | 2 |
| Mathematics | 1 | 2 |
Như bạn có thể thấy trong kết quả trên, các sinh viên có cùng Subject và Year được xếp vào cùng một nhóm.
Mệnh đề Having
Chúng ta đều biết rằng mệnh đề WHERE được dùng để đặt điều kiện cho các cột trong mệnh đề SELECT. Nhưng đối với mệnh đề GROUP BY thì chúng ta không thể sử dụng WHERE mà là HAVING.
Cú pháp
SELECT column1, function_name(column2) FROM table_name WHERE condition GROUP BY column1, column2 HAVING condition ORDER BY column1, column2; function_name: Tên các hàm, SUM() , AVG(). table_name: Tên table. condition: Điều kiện.Ví dụ gom nhóm các Employee theo NAME và lọc ra các nhóm có tổng lương lớn hơn 3000
SELECT NAME, SUM(SALARY) FROM Employee GROUP BY NAME HAVING SUM(SALARY)>3000;Output
| Name | Sum(Salary) |
| Harsh | 5500 |
Nguồn tham khảo
https://www.geeksforgeeks.org/sql-group-by/
Từ khóa » Cộng Các Cột Trong Sql
-
Hàm SUM Trong SQL Server
-
Hàm COUNT, AVG, SUM Trong SQL
-
Nối Chuỗi CONCAT Tùy Biến Tên Cột Với AS Và Toán Tử Số Học SQL
-
Cột được Tính Toán Trong SQL Server
-
Các Toán Tử Số Học Trong SQL - Deft Blog
-
Hàm SUM Trong SQL - Hoclaptrinh
-
Chi Tiết Bài Học 09. Hàm SUM Trong SQL - Vimentor
-
Hàm SUM() Lấy Giá Trị Tổng Của Một Cột Trong MySQL - Web Cơ Bản
-
SUM - Hàm Tính Tổng - SQL & Database
-
Nhân Hai Cột Trong SQL Server - HelpEx
-
Để Tính Tổng () Hai Cột Có Tên Bí Danh - Trong Sql - HelpEx
-
Các Loại Hàm Trong SQL · Basic SQL - Coda
-
Sửa Các Câu Lệnh SQL để Tinh Chỉnh Kết Quả Truy Vấn
-
Tổng Quan Về Các Cột được Tính Toán Trong SQL Server