Chuong LVIII : Phần 2 SQL Advanced (bài 12)

Phần 2 SQL Advanced (bài 12)

 

SQL GROUP BY and HAVING

Tập hợp functions (giống như lệnh SUM) thường cần thiết thêm vào hàm GROUP BY .

GROUP BY… được xem thêm vào SQL bởi vì tập hợp các hàm trả về tập hợp của tất cả giá trị của cột theo mọi thời điểm mà họ gọi ra , và ko dùng hàm GROUP BY thì xem như ko thể tìm được số tổng số của những giá trị nhóm cột riêng lẻ .

Cú pháp :

Trích:

SELECT column,SUM(column) FROM table GROUP BY column

Ví dụ về GROUP BY :

Đây là table “Sales” :

Sử dụng câu lệnh SQL để xem những trường có trong table này :

Trích:

SELECT Company, SUM(Amount) FROM Sales

Kết quả :

Đoạn code trên sẽ ko có hiệu lực bởi vị cột SUM(Amount) sẽ trả về tổng của tất cả các giá trị trong đó nên hiển thị sai .Mệnh đề GROUP BY sẽ giải quyết được vấn đề này :

Trích:

SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company

Kết quả :

Như bạn thấy câu lệnh trên sẽ nhóm những giá trị theo cột Company như vậy các giá trị Amount sẽ phải hiển thị đúng theo sự sắp xếp bên đó. Kết quả W3Schools có giá trị là 12600 vì có 2 trường cộng lại , IBM thì giữ nguyên đúng giá trị của nó.

HAVING…

Với câu lệnh này có lẽ bạn đã hiểu ý nghĩa của nó vì SQL rất gần với ngôn ngữ bình thường.

Cú pháp :

Trích:

SELECT column,SUM(column) FROM table
GROUP BY column
HAVING SUM(column) condition value

Xem qua ví dụ sau đây bạn sẽ hiểu :

Vẫn table Sales :

Ta thực hiện lệnh như sau :

Trích:

SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company
HAVING SUM(Amount)>10000

Kết quả :

Kết quả sẽ hiển thị ra số nào ứng với cột Company có số lượng >10000 (having), vậy chỉ có W3Schools với tổng số là 12600.

dondoc (vniss)

 

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: