Group by là gì

GROUP BY, nhóm kết quả trả về dựa vào giá trị của cột được nhóm.
GROUP BY thường được sử dụng trong các truy vấn đòi hỏi tính toán, hiển thị theo nhóm.

Ví dụ: sử dụng câu lệnh Join để nối hai bảng Orders và Order Details trong database NorthWind. Kết quả của truy vấn là Orders , ProductId , UniPrice và Quanlity của từng Product. Sắp xếp theo Orders ID.

Use northwind;
GO
SELECT Orders.OrderID, 
       [Order Details].ProductID, 
       [Order Details].UnitPrice, 
       [Order Details].Quantity 
FROM   Orders 
       JOIN [Order Details] 
         ON Orders.OrderID = [Order Details].OrderID 
ORDER  BY Orders.OrderID 

Kết quả của truy vấn:

các nhóm có thể nhóm

Bạn thấy ở những truy vấn này, bạn có thể nhóm kết quả trả về thành từng nhóm các Order theo OrderID.

Sau khi nhóm xong, bạn có thể trả lời những câu hỏi  như là:

Tổng giá trị của Order đó là bao nhiêu? 
Tổng số lượng sản phẩm cho từng Order là bao nhiêu? Ví dụ, với OrderID 10248, ta thấy tổng số lượng hàng hóa là 12+10+5 = 27.

Giá trị trung bình từng món hàng của Order là bao nhiêu?

Ví dụ 2: Tính tổng số lượng hàng hóa của từng hóa đơn

Use northwind;
GO
SELECT Orders.OrderID, 
       Sum([Order Details].Quantity) As 'Tổng Số lượng hàng hóa' 
FROM   Orders 
       JOIN [Order Details] 
         ON Orders.OrderID = [Order Details].OrderID 
GROUP  BY Orders.OrderID 

nhóm
Với Order có OrderId = 10248, ta thấy số lượng hàng hóa là 27. Phù hợp với tính toán ở ví dụ 1.

Ví dụ 3: Tính tổng giá trị của từng hóa đơn, biết rằng, giá trị một mặt hàng = UnitPrice * Quanlity.

Use northwind;
GO
SELECT Orders.OrderID, 
       Sum([Order Details].Quantity * [Order Details].UnitPrice) As 
       'Tổng Giá Trị' 
FROM   Orders 
       JOIN [Order Details] 
         ON Orders.OrderID = [Order Details].OrderID 
GROUP  BY Orders.OrderID 

Tài liệu tham khảo: http://www.w3schools.com/sql/sql_groupby.asp

Bạn có thể tham khảo cách cài đặt database northwind tại đây:
http://hocdai.com/sql-can-ban/cai-dat-sql/cai-dat-database-northwind

Các môn học khác

HTTP giúp kết nối các máy tính trên mạng Internet thông qua TCP/IP

Khóa học này cung cấp cho ta kiến thức nền tảng về công nghệ Blockchain, Bitcoin. Vì sao nó được gọi là công nghệ của tương lai, vì sao giá Bitcoin lại cao đến vậy. Làm sao để mua Bitcoin, ETH.

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.