DISTINCT 문법
- SELECT 시 DISTINCT를 사용하면 중복 값을 제외한 결과 값이 출력됨
- 즉, 같은 결과의 행이라면 중복을 제거할 수 있음
- COLUMN_1의 값이 중복 값 존재 시 중복 값을 제거
SELECT DISTINCT COLUMN_1 FROM TABLE_NAME;
- COLUMN_1 + COLUMN_2의 값이 중복 값 존재 시 중복 값을 제거
SELECT DISTINCT COLUMN_1, COLUMN_2 FROM TABLE_NAME
- COLUMN_1 + COLUMN_2의 값이 중복 값 존재 시 중복 값을 제거, 결과를 명확하게 하기 위해 ORDER BY절 사용
SELECT DISTINCT COLUMN_1, COLUMN_2
FROM TABLE_NAME
ORDER BY COLUMN_1, COLUMN_2;
테이블 생성하기
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 * FROM T1;
DISTINCT ON
- 해당 컬럼 값을 단 한 개 값 만을 보여주는 것
- DISTINCT ON(BCOLOR) BCOLOR
실습
1) SELECT DISTINCT를 사용하여 BCOLOR 컬럼의 중복 값을 제거하여 조회하며, 제거된 BCOLOR 컬럼 값 기준으로 정렬
SELECT DISTINCT BCOLOR
FROM T1
ORDER BY BCOLOR;
2) SELECT DISTINCT를 사용하여 BCOLOR + FCOLOR 컬럼의 중복 값을 제거하여 조회하며, 제거된 BCOLOR + FCOLOR 컬럼 값 기준으로 정렬
SELECT DISTINCT BCOLOR, FCOLOR
FROM T1
ORDER BY BCOLOR, FCOLOR;
3) SELECT DISTINCT를 사용하여 BCOLOR 컬럼 값 기준 중복을 제거하며, FCOLOR 컬럼 값은 단 한 개 값 만을 보여줌
SELECT DISTINCT ON(BCOLOR) BCOLOR, FCOLOR
FROM T1
ORDER BY BCOLOR, FCOLOR;
4) SELECT DISTINCT를 사용하여 BCOLOR 컬럼 값 기준 중복을 제거하며, FCOLOR 컬럼 값은 단 한 개 값 만을 보여주며, FCOLOR 컬럼 값을 보여줄 때, 내림차순으로 정렬함
SELECT DISTINCT ON(BCOLOR) BCOLOR, FCOLOR
FROM T1
ORDER BY BCOLOR, FCOLOR DESC;
'Database > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] PostgreSQL 결과의 제한 (LIMIT 절) (0) | 2024.06.11 |
---|---|
[PostgreSQL] PostgreSQL 필터링 조회 (WHERE 절) (0) | 2024.06.10 |
[PostgreSQL] PostgreSQL 데이터 정렬 (ORDER BY 문) (0) | 2024.06.10 |
[PostgreSQL] PostgreSQL 데이터 조회 (SELECT 문) (0) | 2024.06.10 |
[PostgreSQL] 공간데이터 IMPORT (0) | 2024.06.10 |