Bài giảng thực hành cơ SỞ DỮ liệU


  Mệnh đề điều kiện HAVING



tải về 4.27 Mb.
Chế độ xem pdf
trang30/43
Chuyển đổi dữ liệu13.11.2023
Kích4.27 Mb.
#55638
1   ...   26   27   28   29   30   31   32   33   ...   43
TH CSDL 2015Sep
NEW.Bài giảng CSDL sau nghiệm thu-2023, 6. Đề cương Cơ sở dữ liệu- sau nghiệm thu. 23.02.2022, Chuong01-CSDL
3. 
Mệnh đề điều kiện HAVING
 
HAVING cũng là một mệnh đề có thể xuất hiện hoặc không trong mệnh đề SELECT. Nó 
chỉ ra một điều kiệ lọc trên dữ liệu là một nhóm các bản ghi hoặc là kết quả của việc thực 
hiện hàm nhóm. HAVING thường được sử dụng cùng với GROUP BY, khi đó điều kiện 
lọc chỉ được áp dụng trên các cột xuất hiện trong mệnh đề GROUP BY mà thôi. Nếu 
HAVING không di kèm với GROUP BY, khi đó nó có ý nghĩa như WHERE mà thôi. 
Lưu ý rằng, HAVING áp dụng trên các nhóm bản ghi, còn WHERE áp dụng trên từng 
bản ghi riêng lẻ. 
Ví dụ: Chúng ta sử dụng mệnh đề GROUP BY để có được tất cả các đơn đặt hàng, số 
lượng các mặt hàng bán ra và tổng giá trị trong mỗi đơn đặt hàng như sau: 
SELECT ordernumber, 
sum(quantityOrdered) AS itemsCount, 
sum(priceEach * quantityOrdered) AS total 
FROM orderdetails 
GROUP BY ordernumber 


74 
Bây giờ, có thể yêu cầu hiển thị chỉ những đơn hàng có tổng giá trị lớn hơn $1000 bằng 
cách sử dụng HAVING như sau: 
SELECT ordernumber, 
sum(quantityOrdered) AS itemsCount, 
sum(priceEach * quantityOrdered) AS total 
FROM orderdetails 
GROUP BY ordernumber 
HAVING total > 1000 
Chúng ta sử dụng bí danh cho cột sum (
priceEach * quantityOrdered
) là total, như 
vậy trong mệnh đề HAVING, chúng ta chỉ cần dùng bí danh đó thay vì 
Gõ sum( priceeach) một lần nữa. 
Có thể sử dụng một điều kiện kết hợp trong mệnh đề HAVING với các toán tử OR, 
AND.
Ví dụ: nếu muốn biết những đơn hàng có tổng giá trị lớn hơn $ 1000 và có hơn 600 mặt 
hàng trong đó, có thể sử dụng truy vấn sau đây: 


75 
SELECT ordernumber, 
sum(quantityOrdered) AS itemsCount, 
sum(priceeach) AS total 
FROM orderdetails 
GROUP BY ordernumber 
HAVING total > 1000 AND itemsCount > 600 
Bài tập thực hành 
1. Đưa ra tên các thành phố và số lượng khách hàng tại từng thành phố. 
2. Đưa ra số lượng các đơn đặt hàng trong tháng 3/2005. 
3. Đưa ra số lượng các đơn đặt hàng trong từng tháng của năm 2005 
4. Đưa ra 10 mã đơn đặt hàng có giá trị lớn nhất. 
5. Đưa ra mã nhóm hàng và tổng số lượng hàng hoá còn trong kho của nhóm hàng 
đó. 

tải về 4.27 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   26   27   28   29   30   31   32   33   ...   43




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương