inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 중급 SQL

DISTINCT 질문 드립니다.

228

김별

작성한 질문수 2

0

DISTINCT 관련 질문 드립니다.

만약 COUNT(city) - COUNT(DISTINCT city) 문제에서처럼 중복값을 빼준다고 했을 때,

DISTINCT는 city 이름이 같은 경우에만 중복값으로 인지하는지, 아니면 그 row에 다른 data (예를들면 위도, 적도) 등도 같을 경우에 중복값으로 인지하는지 궁금합니다.

 

전자의 경우에는 위치는 다르지만 우연히 두 도시의 이름이 같을 경우 중복으로 인지할 것이고,

후자일 경우에는 작성자의 실수로 같은 데이터가 두번 입력됬을때 중복으로 인지할텐데,

DISTINCT가 구분하는 경우가 어떻게 되나요?

sql

답변 2

0

지식공유자 J

예시로 추가 설명 드립니다.

city | latitude
seoul | 37
seoul | 36

위와 같은 데이터에서 count(city) - count(distinct city) = 2 - 1 = 1 입니다.
count(distinct city) 를 계산할 때 latitude는 고려 대상이 아닙니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

SQL의 DISTINCT 키워드는 SELECT 문에 사용될 때 중복되는 행을 제거하는데 쓰입니다. 이때 중복 여부는 DISTINCT 다음에 명시된 컬럼들의 조합에 기반하여 결정됩니다.

예를 들어, SELECT DISTINCT city 문을 실행하면, ‘city’ 컬럼의 값이 같은 행들을 중복으로 간주하고 결과에서는 각각 다른 ‘city’ 값을 가진 유일한 행들만을 반환합니다. 여기서 다른 컬럼들은 고려 대상이 아닙니다.

만약 ‘city’와 ‘latitude’, ‘longitude’ 등 다른 컬럼들을 포함시키고 싶다면 쿼리는 SELECT DISTINCT city, latitude, longitude 와 같이 작성되어야 하며, 이 경우 각 행의 중복 여부는 ‘city’, ‘latitude’, ‘longitude’ 컬럼 조합의 유일성에 따라 판단됩니다.

따라서 DISTINCT는 지정된 컬럼들의 조합으로 중복을 구별하기 때문에, 질문하신 첫 번째 경우(도시 이름만 같고 다른 데이터는 다를 때)에 해당하는 경우만 중복으로 간주합니다. 다른 데이터가 동일해야 전체 행이 중복으로 판단되며 이것은 두 번째 경우에 해당합니다.

리트코드 1280. Students and Examinations

0

75

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

89

2

African Cities 문제관련 질문

0

54

1

SQL 코딩테스트 질문

0

206

1

HACKER RANK에서 문제찾기

0

98

2

강의 자료 다운로드

0

90

2

Asian population 문제가 없어요

0

77

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

68

2

별칭 관련해서 질문 있습니다.

0

79

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

99

1

ON 뒤에 질문

0

95

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

196

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

204

2

CustomerID가 중복되서 나타나요

0

234

3

별칭이 전체 테이블을 못 불러와요.

0

144

2

CASE WHEN 쿼리 오류 문의

1

325

3

CASE문제풀이 질문

0

125

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

138

1

Average Population 질문

0

130

1

Revising Aggregations - The Count Function 질문

0

104

1

Average Population of Each Continent 에대해서 질문

0

193

3

w3schools 에서 쿼리 작성 질문

0

159

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

329

1