Cú pháp GROUP BY trong SQL

Mệnh đề GROUP BY trong SQL được sử dụng để nhóm các hàng trong kết quả truy vấn dựa trên các giá trị giống nhau trong một hoặc nhiều cột. Sau đó, bạn có thể thực hiện các phép tính tổng hợp (aggregate functions) trên các nhóm này, chẳng hạn như tính tổng, trung bình, đếm, v.v.

group by

Cú pháp:

SELECT column_name(s), <aggregate_function>(<column_name>)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

Mệnh đề Group by thường được sử dụng với các hàm (COUNT(), MAX(), MIN(), SUM(), AVG()) để nhóm kết quả của các cột.

Giải thích:

  • SELECT: Chỉ định các cột bạn muốn hiển thị trong kết quả.
  • <column_name>: Tên của các cột muốn hiển thị hoặc sử dụng trong phép tính tổng hợp.
  • <aggregate_function>(<column_name>): Phép tính tổng hợp được thực hiện trên các nhóm. Ví dụ: SUM, AVG, COUNT, MIN, MAX.
  • FROM: Chỉ định bảng chứa dữ liệu.
  • [WHERE <condition>]: Điều kiện lọc dữ liệu trước khi nhóm (tùy chọn).
  • GROUP BY: Chỉ định các cột được sử dụng để nhóm dữ liệu.

 Ví dụ:

--Tính tổng số lượng đơn hàng cho mỗi khách hàng:
SELECT CustomerID, SUM(Quantity) AS TotalOrders
FROM Orders
GROUP BY CustomerID;

--Tính trung bình điểm thi của mỗi môn học:
SELECT Subject, AVG(Score) AS AverageScore
FROM ExamResults
GROUP BY Subject;

--Tìm kiếm tên sản phẩm và số lượng sản phẩm bán được theo từng danh mục:
SELECT CategoryName, COUNT(*) AS NumberOfProductsSold
FROM OrderItems
GROUP BY CategoryName;

Lưu ý:

  • Các cột được sử dụng trong mệnh đề GROUP BY phải có trong mệnh đề SELECT trừ khi bạn sử dụng aggregate function có kèm theo distinct keyword (ví dụ: COUNT(DISTINCT column_name)).
  • Bạn có thể sử dụng nhiều cột trong mệnh đề GROUP BY để nhóm dữ liệu theo nhiều tiêu chí.

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA - https://www.youtube.com/@DuoDBA) tác giả của blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn muốn có người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận