[DB] DISTINCT 사용법
DISTINCT 사용법
1. DISTINCT 란? [1]
DISTINCT는 똑같은 값을 가지는 column values를 제거한 뒤 값을 return 합니다.
DISTINCT 뒤에 2개 이상의 column을 적으면, 한 쪽 column에 중복이 있어도 다른 쪽 column 값이 다르면 다른 값으로 취급합니다. (중복된 값으로 인지 X)
2. DISTINCT 사용법
ID | Name | Salary | Position | Country |
---|---|---|---|---|
1 | A | 10,000 | Clerk | Korea |
2 | B | 100,000 | Assistant Manager | Korea |
3 | C | 100,000 | Assistant Manager | USA |
4 | D | 100,000 | Assistant Manager | Korea |
5 | E | 1,000,000 | General Manager | Korea |
Example - Country column의 모든 values 출력
TEST라는 table에서 column이 Country인 모든 values를 가져옵니다.
SELECT Country FROM TEST
# 출력
# ('Korea',),
# ('Korea',),
# ('USA',),
# ('Korea',),
# ('Korea',)
# 출력
# ('Korea',),
# ('Korea',),
# ('USA',),
# ('Korea',),
# ('Korea',)
저 같은 경우에는 python으로 db를 읽어왔기 때문에 tuple 형태로 값들을 읽어왔습니다.
어떻게 읽어오느냐에 따라 출력 형식은 다를 수 있습니다.
Example - DISTINCT를 이용한 Country values 중복 제거
TEST라는 table에서 column이 Country인 values를 가져옵니다.이 때 중복된 값(Korea)은 하나 이상 가져오지 않습니다.
SELECT DISTINCT Country FROM TEST
# 출력
# ('Korea',),
# ('USA',)
# 출력
# ('Korea',),
# ('USA',)
Example - Position, Country 모든 values 출력
column이 Position, Country인 values를 가져옵니다.
SELECT Position, Country FROM TEST
# 출력
# ('Clerk', 'Korea'),
# ('Assistant Manager', 'Korea'),
# ('Assistant Manager', 'USA'),
# ('Assistant Manager', 'Korea'),
# ('GeneralManager', 'Korea')
# 출력
# ('Clerk', 'Korea'),
# ('Assistant Manager', 'Korea'),
# ('Assistant Manager', 'USA'),
# ('Assistant Manager', 'Korea'),
# ('GeneralManager', 'Korea')
Example - DISTINCT를 이용한 Position, Country values 중복 제거
column이 Position, Country인 values를 가져옵니다.이 때 (Position value, Country value)는 중복된 값(Assistant Manager, Korea)을 가져오지 않습니다.
SELECT DISTINCT Position, Country FROM TEST
# 출력
# ('Clerk', 'Korea'),
# ('Assistant Manager', 'Korea'),
# ('Assistant Manager', 'USA'),
# ('GeneralManager', 'Korea')
# 출력
# ('Clerk', 'Korea'),
# ('Assistant Manager', 'Korea'),
# ('Assistant Manager', 'USA'),
# ('GeneralManager', 'Korea')
Example - DISTINCT 한 column에만 적용 가능한가? [2]
아래의 사진을 보면 DISTINCT는 SELECT에 명시된 column 값들의 uniqueness(고유한지)를 확인한다고 쓰여 있습니다.아래의 사진을 보면 DISTINCT는 명시된 column 값의 중복을 제거한다고 쓰여 있습니다.
DISTINCT는 SELECT에 명시된 column values들이 고유한지를 검색하여 고유한 값들만을 return 합니다.
즉. DISTINCT를 사용하여 여러 column 중 한개의 column만 중복된 값을 제거하는 건 불가능합니다.
참고문헌
[1]https://www.w3schools.com/sql/sql_distinct.asp[2]http://www.sqlservertutorial.net/sql-server-basics/sql-server-select-distinct/
댓글
댓글 쓰기