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
반응형
'SQL & DB > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] 데이터 행과 열 변환 (0) | 2021.01.07 |
---|---|
[PostgreSQL] Window Function(윈도우 함수), 순위함수 (0) | 2021.01.07 |
[PostgreSQL] 계산 관련 함수(ABS, POWER , SQRT, POINT) (0) | 2021.01.07 |
[PostgreSQL] 값 비교(CASE, SIGN, GREATEST, LEAST), 평균값 구하기 (0) | 2021.01.07 |
[PostgreSQL] NULL값 처리 (COALESCE, NULLIF) (0) | 2021.01.07 |