Jin's Dev Story

[PostgreSQL] PostgreSQL GROUP BY 절 본문

Database/PostgreSQL

[PostgreSQL] PostgreSQL GROUP BY 절

woojin._. 2024. 6. 11. 10:35

GROUP BY

  • SELECT 문에서 반환된 행을 그룹으로 나눔
  • 각 그룹에 대한 합계, 평균, 카운트 등을 계산할 수 있음

 

기본 문법

  • N개의 컬럼을 GROUP BY 하는 경우, (콤마)로 구분하며, GROUP BY 절은 FROM 또는 WHERE 절 바로 뒤에 작성해야 함
SELECT COLUMN_1, 집계함수(COLUMN_2)
FROM TABLE_NAME
GROUP BY COLUMN_1;

 

실습

 

 1) PAYMENT 테이블을 CUSTOMER_ID 기준으로 GROUP BY

SELECT CUSTOMER_ID FROM PAYMENT GROUP BY CUSTOMER_ID;

 

 2)  PAYMENT 테이블을 CUSTOMER_ID 기준으로 GROUP BY 하고 AMOUNT의 합계 값을 기준으로 내림차순 정렬

SELECT CUSTOMER_ID, SUM(AMOUNT) AS AMOUNT_SUM
FROM PAYMENT
GROUP BY CUSTOMER_ID
ORDER BY SUM(AMOUNT) DESC;  -- 동일 방법 2 DESC;

 

 3)  PAYMENT 테이블을 STAFF_ID 기준으로 PAYMENT_ID의 카운트를 조회하며 STAFF_ID 기준으로 GROUP BY

SELECT STAFF_ID, COUNT(PAYMENT_ID) COUNT
FROM PAYMENT
GROUP BY STAFF_ID;

 

 3-2) 위의 조건에서 STAFF의 이름까지 같이 조회하고 싶을 때, JOIN 사용

SELECT A.STAFF_ID, COUNT(A.PAYMENT_ID) AS COUNT, B.FIRST_NAME, B.LAST_NAME
FROM PAYMENT A, STAFF B
WHERE A.STAFF_ID = B.STAFF_ID
GROUP BY
	A.STAFF_ID,
	B.STAFF_ID,
	B.FIRST_NAME,
	B.LAST_NAME;