Tuesday, December 20, 2016
Mệnh đề GROUP BY mệnh đề HAVING trong SQL
Mệnh đề GROUP BY mệnh đề HAVING trong SQL
M?nh ??
GROUP BY
???c thêm vào SQL b?i vì các hàm t?p h?p (nh? SUM
) tr? v? m?t t?p h?p c?a các giá tr? trong c?t m?i khi chúng ???c g?i, và n?u không có GROUP BY ta không th? nào tính ???c t?ng c?a các giá tr? theo t?ng nhóm riêng l? trong c?t.Cú pháp c?a
GROUP BY
nh? sau:SELECT tên_c?t, SUM(tên_c?t) FROM tên_b?ng GROUP BY tên_c?t
Ví d? s? d?ng
GROUP BY
:Gi? s? ta có b?ng Sales nh? sau:
Company | Amount |
---|---|
W3Schools | 5500 |
IBM | 4500 |
W3Schools | 7100 |
Câu l?nh SQL sau:
SELECT Company, SUM(Amount) FROM Sales
s? tr? v? k?t qu?:
Company | SUM(Amount) |
---|---|
W3Schools | 17100 |
IBM | 17100 |
W3Schools | 17100 |
K?t qu? tr? v? ? trên ?ôi khi không ph?i là cái mà ta mong ??i. Ta thêm m?nh ??
GROUP BY
vào trong câu l?nh SQL:SELECT Company, SUM(Amount) FROM Sales
GROUP BY Company
và k?t qu? tr? v? l?n này s? là:
Company | SUM(Amount) |
---|---|
W3Schools | 12600 |
IBM | 4500 |
K?t qu? này ?úng là cái mà ta mong mu?n.
HAVING
M?nh ??
HAVING
???c thêm vào SQL vì m?nh ?? WHERE
không áp d?ng ???c ??i v?i các hàm t?p h?p (nh? SUM
). N?u không có HAVING
, ta không th? nào ki?m tra ???c ?i?u ki?n v?i các hàm t?p h?p.Cú pháp c?a
HAVING
nh? sau:SELECT tên_c?t, SUM(tên_c?t) FROM tên_b?ng
GROUP BY tên_c?t
HAVING SUM(tên_c?t) ?i?u_ki?n giá_tr?
Ta s? d?ng l?i b?ng Sales ? trên. Câu l?nh SQL sau:
SELECT Company, SUM(Amount) FROM Sales
GROUP BY Company
HAVING SUM(Amount) > 10000
s? tr? v? k?t qu?:
Company | SUM(Amount) |
---|---|
W3Schools | 12600 |
Available link for download