70
Ví dụ: Giả sử muốn phân chia các đơn đặt hàng theo các nhóm phụ thuộc vào tình trạng
của các đơn hàng, có thể làm như sau:
SELECT
status
FROM
orders
GROUP BY status
Kết quả trả về như sau:
Các hàm nhóm được sử dụng với GROUP BY để thực hiện tính toán trên mỗi nhóm
các
bản ghi
và
trả về một giá trị duy nhất cho mỗi hàng.
Ví dụ: m
uốn biết
có bao nhiêu đơn đặt hàng trong từng nhóm trạng thái, có thể sử dụng
hàm COUNT như sau:
SELECT status, count(*)
FROM orders
GROUP BY status
Kết quả trả về như sau:
71
Ví dụ: m
uốn biết
có bao nhiêu loại sản phẩm trong mỗi loại dòng sản phẩm
SELECT productLine, count(*)
FROM products
GROUP BY productline
Ví dụ: Để có được tổng số tiền cho mỗi sản phẩm đã bán, chúng ta chỉ cần sử dụng chức
năng SUM và nhóm sản phẩm. Dưới đây là truy vấn:
SELECT productCode,sum(priceEach * quantityOrdered)
total
FROM orderdetails
GROUP by productCode
Kết quả trả về như sau:
72
Ví dụ: Giả sử chúng ta muốn xem các kết quả của truy vấn trên, hiển thị theo thứ tự tăng
dần chúng ta làm như sau:
SELECT productCode,sum(priceEach * quantityOrdered) total
FROM orderdetails
GROUP by productCode
ORDER BY
total DESC
Kết quả trả về như sau:
Lưu ý: sự khác nhau giữa GROUP BY trong MySQL và ANSI SQL
MySQL tuân theo chuẩn ANSI SQL. Tuy nhiên, có 2 sự khác biệt khi sử dụng
GROUP
BY trong MySQL như sau:
Trong ANSI SQL, phải thực hiện GROUP BY tất cả các cột xuất hiện trong mệnh
đề SELECT. MySQL không đòi hỏi như vậy, có thể đưa thêm các cột vào trong
mệnh đề SELECT và không bắt buộc chúng phải xuất hiện ở mệnh đề GROUP
BY.
73
MySQL cũng cho phép sắp xếp các nhóm theo thứ tự các kết quả tính toán, mặc
định là giảm dần.
Chia sẻ với bạn bè của bạn: