본문 바로가기
  • Hello_
SQL/MySQL

[MySQL] 중복된 값 제거하여 데이터를 호출하기

by LDwDL 2023. 2. 7.
728x90
반응형

본 포스팅에서는 MySQL에서 중복된 값들을 모두 제외하고 값들을 하나씩 불러오고 개수를 세어보고자 한다.

 

데이터 조회

예시 테이블의 데이터는 환자 번호와 특정 열들로 이뤄진 데이터셋이며 총 357개이다. 환자 번호는 unique 한 값이지만 다른 특정 열로 인해 중복된 값도 존재한다.

 

"select 열 from 테이블"을 통해 테이블 안에 'patient ID'라는 특정 열만 조회해보자.

select 'patient ID' from dataset.sevannot_csv

 

실행결과는 다음과 같으며, 결과 일부를 가져왔다.

데이터 조회

 

이후 count와 group by를 활용하여 'patient ID'를 기준으로 그룹별 데이터가 각 몇 개가 있는지 확인해 보자. 

select 'patient ID', count('patient ID') from dataset.sevannot_csv
group by 'patient ID'

 

group by

'2019_002'는 4개, '2019_003'은 2개 등 중복된 값이 생각보다 많다는 것을 알 수 있다. 이렇게 중복되는 개수를 알아보았는데 본 목적인 중복되는 'patient ID' 들을 1개 빼고 모두 제외하고 오롯이 'patient ID'의 개수를 세어보자.

 

중복된 값 제거하여 데이터 조회

방법은 굉장히 간단하다. "select distinct 열 from 테이블"을 사용하면 되고 이전과 다른 점은 select와 특정 열 사이에 distinct를 포함한 것이다.

select distinct 'patient ID' from dataset.sevannot_csv

 

distinct

그럼 다음과 같이 중복된 값을 모두 제외하고 unique 한 값만 조회된다. 예를 들어 4개였던 '2019_002'가 한 개로 출력이 되었다.

 

최종적으로 중복된 개수가 몇 개이고 unique 한 값이 몇 개인지 확인하기 위해 개수를 세어보자.

 

count

 

왼쪽은 테이블에서 'patient ID'를 호출하여 개수를 카운트했고 오른쪽은 distinct를 활용하여 중복된 값이 제외된 채로 카운트가 된 것이다.

 

왼쪽의 결과는 357개, 오른쪽의 결과는 292개로 출력됐다.

 

즉 중복된 값이 총 65개였던 거고, distinct가 중복된 값을 모두 제외시킨 것이다.

 

728x90
반응형

'SQL > MySQL' 카테고리의 다른 글

[MySQL] MySQL에서 엑셀 파일 가져오기  (0) 2023.02.03
[MySQL] MySQL 설치하고 실행하기 (윈도우)  (0) 2023.01.11

댓글