SQL & DB/PostgreSQL

[PostgreSQL] 집약함수와 Grouping(COUNT, SUM, AVG, MAX, MIN, GROUP BY)

YSY^ 2021. 1. 7. 17:54

DATASET QUERY

DROP TABLE IF EXISTS review;
CREATE TABLE review (
    user_id    varchar(255)
  , product_id varchar(255)
  , score      numeric
);

INSERT INTO review
VALUES
    ('U001', 'A001', 4.0)
  , ('U001', 'A002', 5.0)
  , ('U001', 'A003', 5.0)
  , ('U002', 'A001', 3.0)
  , ('U002', 'A002', 3.0)
  , ('U002', 'A003', 4.0)
  , ('U003', 'A001', 5.0)
  , ('U003', 'A002', 4.0)
  , ('U003', 'A003', 4.0)
;

 

중복제거함수(DISTINCT)

DISTINCT는 중복을 제거해주는 함수입니다.

 

집약함수 (COUNT, SUM, AVG, MAX, MIN)

Count는 개수를 세어주고, sum은 합계, avg는 평균, max는 최대값, min은 최소값을 리턴하는 함수입니다.

 

GROUPING (GROUP BY)

GROUP BY를 사용하면 특정 칼럼을 기준으로 데이터를 분류할 수 있습니다.

USER_id를 기준으로 그룹을 묶고 각 그룹에 집약함수를 적용하겠습니다.

select
	user_id
	,count(*) as total_count
	,count(DISTINCT product_id) as product_count
	,sum(score) as sum
	,avg(score) as avg
	,max(score) as max
	,min(score) as min
from review
group by user_id;

 

 

728x90
반응형