Hướng dẫn SQL

TRANG CHỦ SQL Giới thiệu SQL Cú pháp SQL Lựa chọn SQL SQL Chọn phân biệt SQL ở đâu SQL Và, Hoặc, Không Đặt hàng SQL theo Chèn SQL vào Giá trị rỗng trong SQL Cập nhật SQL SQL Delete SQL Select Top SQL Min và Max Số lượng SQL, Trung bình, Tổng SQL như Ký tự đại diện SQL SQL trong SQL giữa Bí danh SQL SQL tham gia Tham gia bên trong SQL SQL còn lại tham gia SQL Right Join Tham gia đầy đủ SQL SQL tự tham gia SQL Union Nhóm SQL bởi SQL có SQL tồn tại SQL Bất kỳ, Tất cả SQL chọn vào Chèn SQL vào vùng chọn Trường hợp SQL Hàm Null trong SQL Thủ tục lưu trữ SQL Nhận xét SQL Toán tử SQL

Cơ sở dữ liệu SQL

SQL Tạo cơ sở dữ liệu SQL Drop DB Cơ sở dữ liệu sao lưu SQL SQL Tạo bảng Bảng thả SQL Bảng thay thế SQL Các ràng buộc SQL SQL không rỗng SQL duy nhất Khóa chính SQL Khóa ngoại SQL Kiểm tra SQL SQL mặc định Chỉ mục SQL Tăng tự động SQL SQL Dates Chế độ xem SQL SQL Injection Lưu trữ SQL Các kiểu dữ liệu SQL

Tham chiếu SQL

Từ khóa SQL Các chức năng của MySQL Các chức năng của SQL Server Chức năng MS Access Tham khảo nhanh SQL

Ví dụ về SQL

Ví dụ về SQL Câu hỏi SQL Bài tập SQL Chứng chỉ SQL

Mệnh đề HAVING trong SQL


Mệnh đề HAVING của SQL

Mệnh HAVINGđề đã được thêm vào SQL vì WHEREtừ khóa không thể được sử dụng với các hàm tổng hợp.

Cú pháp HAVING

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

Cơ sở dữ liệu Demo

Dưới đây là lựa chọn từ bảng "Khách hàng" trong cơ sở dữ liệu mẫu Northwind:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Ví dụ về SQL HAVING

Câu lệnh SQL sau liệt kê số lượng khách hàng ở mỗi quốc gia. Chỉ bao gồm các quốc gia có hơn 5 khách hàng:

Thí dụ

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

Câu lệnh SQL sau liệt kê số lượng khách hàng ở mỗi quốc gia, được sắp xếp từ cao đến thấp (Chỉ bao gồm các quốc gia có hơn 5 khách hàng):

Thí dụ

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;


Cơ sở dữ liệu Demo

Dưới đây là lựa chọn từ bảng "Đơn hàng" trong cơ sở dữ liệu mẫu Northwind:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

Và lựa chọn từ bảng "Nhân viên":

EmployeeID LastName FirstName BirthDate Photo Notes
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....

Thêm các ví dụ có HAVING

Câu lệnh SQL sau liệt kê các nhân viên đã đăng ký hơn 10 đơn đặt hàng:

Thí dụ

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

Câu lệnh SQL sau liệt kê nếu nhân viên "Davolio" hoặc "Fuller" đã đăng ký hơn 25 đơn đặt hàng:

Thí dụ

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;