PostgreSQL GROUP BY절 을 사용하여 행을 그룹으로 나누는 방법

 

SELECT 명령문에서 반환된 행을 그룹으로 나눕니다.

SELECT 
   column_1, 
   column_2,
   ...,
   aggregate_function(column_3)
FROM 
   table_name
GROUP BY 
   column_1,
   column_2,
   ...;

- statement 절은 GROUP BY 절에 지정된 열의 값으로 나누고 각 그룹에 대한 값을 계산합니다.

 


 

1) GROUP BY집계 함수 없이 PostgreSQL 사용 

SELECT
   customer_id
FROM
   payment
GROUP BY
   customer_id;

 

2) 함수 예제 GROUP BY와 함께 PostgreSQL 사용하기SUM()

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

- GROUP BY는 SUM과 함께 사용하면 유용합니다.

 

-정렬도 가능합니다.

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

 

3) JOIN 절과 함께 PostgreSQL GROUP BY 절 사용

-- payment 테이블과 customer테이블을 조인하고 이름별로 고객을 그룹화하는 쿼리
SELECT
	first_name || ' ' || last_name full_name,
	SUM (amount) amount
FROM
	payment
INNER JOIN customer USING (customer_id)    	
GROUP BY
	full_name
ORDER BY amount DESC;

 

4) COUNT()와 함께 PostgreSQL GROUP BY 절 사용

SELECT
	staff_id,
	COUNT (payment_id)
FROM
	payment
GROUP BY
	staff_id;

 

5) 여러 열과 함께 PostgreSQL GROUP BY 절 사용

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

 

6) DATA()와 함께 PostgreSQL GROUP BY 절 사용

SELECT 
	DATE(payment_date) paid_date, 
	SUM(amount) sum
FROM 
	payment
GROUP BY
	DATE(payment_date);

- 날짜별로 지불을 그룹화하려면 먼저 타임스탬프를 날짜로 변환한 다음 결과 날짜를 기준으로 지불을 그룹화 하는 기능을 사용합니다.

반응형

'SW ENGINEERING > Postgres' 카테고리의 다른 글

[PostgreSQL] BASIC - UNION  (0) 2021.09.02
[PostgreSQL] BASIC - HAVING  (0) 2021.09.02
[PostgreSQL] BASIC - INNER JOIN  (0) 2021.09.02
[PostgreSQL] BASIC - NATURAL JOIN  (0) 2021.09.02
[PostgreSQL] BASIC - Cross JOIN  (0) 2021.09.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기