반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

GBEY

[SQL] HAVING이란? + pgAdmin으로 연습하기 본문

데이터분석

[SQL] HAVING이란? + pgAdmin으로 연습하기

리스보아 2023. 8. 24. 11:48
반응형

HAVING이란? + pgAdmin으로 연습하기

 

 

🐸 목차

HAVING 이란?

pgAdmin에서 HAVING 연습하기

 

 


 

🐸 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:

 

 

 

반응형