본문 바로가기
IT/SQL 기초강좌 (PostgreSQL)

25강 SQL이 뭐지? PostgreSQL HAVING

by DoitSQL 2022. 12. 20.
728x90

25강 SQL이 뭐지? PostgreSQL HAVING  

PostgreSQL

SQL이 뭐지? 25강 시작합니다.

 

이번 강의에서는

 PostgreSQL HAVING clause

에 대해서 알아보겠습니다.

 

그룹 또는 집계에 대한 검색 조건을 지정하는 PostgreSQL HAVING 절에 대해서 학습합니다.


Introduction to PostgreSQL HAVING clause   

HAVING 절은 그룹 또는 집계에 대한 검색 조건을 지정합니다. HAVING 절은 GROUP BY 절과 함께 지정된 조건을 기준으로 그룹 또는 집계를 필터링하는 데 자주 사용됩니다.

 

다음 문장은 HAVING 절의 기본 구문을 보여줍니다.

SELECT
       column1,
       aggregate_function (column2)
FROM
       table_name
GROUP BY
       column1
HAVING
       condition;   

 

이 구문에서 절별 그룹화는 열 1로 그룹화된 행을 반환합니다. HAVING 절은 그룹을 필터링할 조건을 지정합니다.

JOIN, LIMIT, FETCH 등 SELECT 문의 다른 절을 추가할 수 있습니다.

PostgreSQL은 FROM, WHERE, GROUP BY, SELECT, DISTINCT, ORDER BY 및 LIMIT 절 뒤에 HAVING 절을 평가합니다.

 

SQL을 평가하는 순서를 도식화하면 다음과 같습니다.

HAVING 절은 SELECT 절 이전에 평가되므로 HAVING 절에서 열 별칭을 사용할 수 없습니다. HAVING 절을 평가할 때 SELECT 절에 지정된 열 별칭을 사용할 수 없기 때문입니다.

 

HAVING vs. WHERE 

WHERE 절을 사용하면 지정된 조건을 기준으로 행을 필터링할 수 있습니다. 그러나 HAVING 절을 사용하면 지정된 조건에 따라 행 그룹을 필터링할 수 있습니다.

즉, WHERE 절은 행에 적용되고 HAVING 절은 행 그룹에 적용됩니다.

WHERE는 개별 행에 적용되고, HAVING 은 그룹화된 항목에 적용됩니다.


PostgreSQL HAVING clause examples   

DVDRENTAL 샘플 데이터베이스에 있는 지불 테이블을 사용합니다.

 

1) Using PostgreSQL HAVING clause with SUM function example   

다음 쿼리는 SUM() 함수와 함께 GROUP BY 절을 사용하여 각 고객의 총금액을 찾습니다.

 

SELECT
   customer_id,
   SUM (amount)
FROM
   payment
GROUP BY
   customer_id; 

 

다음 문구는 200개 이상을 지출한 고객만 선택할 수 있는 HAVING 조항을 추가합니다.

SELECT
   customer_id,
   SUM (amount)
FROM
   payment
GROUP BY
   customer_id
HAVING
   SUM (amount) > 200;   

 

이와 같이  HAVING 절은 그룹화된 SUM (amount)에 대해서 필터링합니다.

 

2) PostgreSQL HAVING clause with COUNT example   

DVDRENTAL 샘플 데이터베이스에 있는 고객 테이블을 사용합니다.

다음 쿼리는 GROUP BY 절을 사용하여 스토어당 고객 수를 찾습니다.

SELECT
    store_id,
    COUNT (customer_id)
FROM
    customer
GROUP BY
    store_id;

다음 문장은 300개 이상의 고객을 보유한 스토어를 선택하기 위한 HAVING 절을 추가합니다.

SELECT
    store_id,
    COUNT (customer_id)
FROM
    customer
GROUP BY
    store_id
HAVING
    COUNT (customer_id) > 300;   


지금까지 HAVING 절에 대해서 공부했습니다.

HAVING 절은 GROUP BY 절이 반환하는 그룹 또는 집계에 대한 검색 조건을 지정합니다.

 

다음 강의에서 뵙겠습니다.


 본 강의는 PostgreSQL Tutorial을 참조합니다. 

 

PostgreSQL Tutorial - Learn PostgreSQL from Scratch

Welcome to the PostgreSQLTutorial.com website! This PostgreSQL tutorial helps you understand PostgreSQL quickly. You’ll master PostgreSQL very fast through many practical examples and apply the knowledge in developing applications using PostgreSQL. If yo

www.postgresqltutorial.com

실습용 테이블에 대해서는 3강을 참조하세요.

 

3강 SQL이 뭐지? 도구들을 설치해보자. ( PostgreSQL, HeidiSQL )

지난 시간까지 SQL이 뭔지 대충 감을 잡는 시간을 가졌습니다. 이번 시간에는 본격적인 SQL을 공부하기 위해서 도구들을 설치해 보겠습니다. 1. PostgreSQL 설치 ( Windows10 64bit 기준) 2. He


Do it! SQL을 찾아 주셔서 감사합니다. 여러분의 댓글이 큰 힘이 됩니다.

 

728x90

댓글