데이터분석
[SQL] HAVING이란? + pgAdmin으로 연습하기
리스보아
2023. 8. 24. 11:48
반응형

HAVING이란? + pgAdmin으로 연습하기
🐸 목차
🐸 HAVING 이란?
- 집계가 완료된 데이터를 필터링 할 수 있게 해준다.
- GROUP BY 뒤에 위치한다.
아래 쿼리문에서는 WHERE 절을 사용해서 필터링 했음.
SUM(sales)로 필터링을 하고 싶은데, WHERE 절에서는 사용할 수 없음
집계는 WHERE문이 실행된 후에 실행되기 때문
SELECT company, SUM(sales)
FROM finance_table
WHERE company != 'Google'
GROUP BY company
SUM(sales)로 필터링을 하고싶다면 아래처럼 HAVING을 추가한다
주의! WHERE과 다른점은, HAVING은 집계 결과에 대해서 필터링을 한다는 점.
SELECT company, SUM(sales)
FROM finance_table
WHERE company != 'Google'
GROUP BY company
HAVING SUM(sales) > 1000;
🐸 pgAdmin에서 HAVING 연습하기
- payment 테이블에서 지불한 금액의 합이 100 이상인 고객만 가져오기
>> HAVING에 amount만 적으면 안됨!
SELECT customer_id, SUM(amount) FROM payment
GROUP BY customer_id
HAVING SUM(amount) > 100;
output:

- customer 테이블에서 고객을 300명 이상 보유한 지점을 구하기
>> COUNT() 안에는 *을 적어줘도 되고, 이해하기 쉽게 열을 명시해도 됨
SELECT store_id, COUNT(customer_id) FROM customer
GROUP BY store_id
HAVING COUNT(customer_id) > 300;
output:

반응형