SELECT DISTINCT 문법
SELECT시 DISTINCT를 사용하면 중복 값을 제외한 결과값이 출력된다. 즉 같은 결과의 행이라면 중복을 제거할 수 있다.
create table t1 (id serial not null primary key, bcolor varchar, fcolor varchar);
insert
into t1 (bcolor, fcolor)
values
('red', 'red')
, ('red', 'red')
, ('red', null)
, (null, 'red')
, ('red', 'green')
, ('red', 'blue')
, ('green', 'red')
, ('green', 'blue')
, ('green', 'green')
, ('blue', 'red')
, ('blue', 'green')
, ('blue', 'blue')
;
commit;
select distinct bcolor # bcolor컬럼의 값을 출력 시 중복된 행을 제거함
from t1
order by bcolor
;
SELECT시 DISTINCT ON을 사용하면 특정 컬럼을 기준으로 중복 값을 제외한 결과값이 출력된다.
select distinct on (bcolor) bcolor # bcolor컬럼의 값을 기준으로 중복된 값을 제거함
, fcolor # fcolor컬럼 값은 단 한 개의 값 만을 보여줌
from t1
order by
bcolor, fcolor desc; # fcolor컬럼 값을 보여 줄 때 내림차순 정렬함.