26. HAVING
1. HAVING
Clause
WHERE
키워드는 집계 함수에 사용될 수 없기 때문에HAVING
절이 SQL에 추가되었다.
2. Syntax
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
Demo Database
- 다음은 Northwind 샘플 데이터베이스의
Customers
테이블이다.
3. HAVING
Examples
- 다음은 고객이
5
명 초과인 국가만 포함하는 각 국가의 고객 수를 나열한다.
- 다음은 고객이
5
명 초과인 국가만 포함하는 각 국가의 고객 수를 내림차순으로 나열한다.
SELECT COUTN(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
Demo Database
- 다음은 Northwind 샘플 데이터베이스의
Orders
테이블이다.
- 다음은 Northwind 샘플 데이터베이스의
Employees
테이블이다.
4. More HAVING
Examples
- 다음은
10
개 이상의 주문을 등록한 직원을 나열한다.
SELECT Employyes.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employyes ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;
- 다음은 직원
"Davolio"
또는"Fuller"
가25
개 이상의 주문을 등록했는지 여부를 나열한다.
SELECT Employyes.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;