2-6 5번 중복 행도 있을 것 이란 가능성을 추가로 염두 했을 때 보강 쿼리 문의
안녕하세요! 덕분에 남이 짠 쿼리의 의미는 파악이 가능한 수준이 될 것 같다는 자신감이 든 수강생입니다! 감사합니다.
2-6 5번 문제를 직면했을 때 동명이인 = 이름 이외 다른 값이 다 다른 경우로 정의했고,
다행히 강사님의 파일에는 해당하지 않지만, 이름이 같고 다른 값도 다 같은 "중복 데이터"가 있을 수 있다는 가능성도 생각을 했습니다.
그래서 혼자 골똘히 고민했는데, (조건이 2개인가? "이름이 같다" and "다른 컬럼이 다르다" 등) 답이 나오지 않아 재생해보니 생각보다 단순한 쿼리여서 놀랐어요.
동명이인이 있는 이름은 무엇일까요? + 전체 파일의 중복 데이터는 제거(ex. 엑셀의 중복 값 제거 )는 아래와 같이 하면 될까요?
SELECT
DISTINCT
name,
COUNT (name) AS CNT
FROM basic.trainer
GROUP BY name
HAVING CNT>=2
답변 1
1
안녕하세요! 강의 수강하셔서 역량이 올라가셨군요.
잘 수강해주셔서 저도 감사하다는 말씀을 드리고 싶어요. 수강을 해주시고 이런 말씀을 해주셔서 감사합니다.
"동명이인"을 분류하기 위해서 실제 회사에선 주민등록 번호나 스마트폰 인증을 통한 CI 값 등을 활용해요.
CI에 대한 내용 : https://yozm.wishket.com/magazine/detail/2488/
그러나 이런 경우엔 모든 컬럼을 보고 다른 내용이 있다면 다른 사람이구나!라고 볼 수도 있지요. 여러 컬럼 중에 이름이 제일 중요한 분기점이라 말씀하신 내용으로 구하시면 되어요.
쿼리를 조금 더 손본다고 하면
SELECT
name,
COUNT (name) AS CNT
FROM basic.trainer
GROUP BY name
HAVING CNT>=2이렇게 DISTINCT를 제외하고 쓰는 것이 더 좋아요. 중복을 제거할 때 DISTINCT를 사용하거나 GROUP BY를 사용할 수 있는데 둘 다 같이 사용하는 것은 거의 하지 않아요. HAVING을 사용하려고 하셨으니 GROUP BY가 필요하니 위 쿼리처럼 하시면 됩니다!
vs code
0
51
2
수업자료 다운
0
49
2
쿼리 화면 문의
0
72
2
4-5. 3번 문제 질
0
66
2
JOIN 1번 문제
1
76
2
battle 테이블 생성 시 생성 오류
0
69
1
5-6. 4번 문제 WHERE 조건의 위치 문의
0
65
2
5-6. 연습문제 4번, type2에 대해서는 고려하지 않아도 될까요?
1
71
2
battle table 오류
0
69
2
location IS NOT NULL 을 굳이 안 써도 되지 않나요?
0
62
2
12강 집계 함수
0
49
1
2-6. 연습 문제 1~3번
0
50
1
안녕하세요! 11번 문제 query문에 관해 질문드립니다
0
51
1
2-6 #2 WHERE vs. HAVING절 사용 여부 차이
0
67
1
섹션 별 퀴즈
0
67
1
espanso 설치 완료 후 프로그램 실행 문제
0
104
2
Syntax에러
0
83
2
4-5. 1번 문제 TIMESTAMP 관련 질문
0
89
2
시각화 도구 사용
0
110
2
11번 문제 GROUP BY 사용하는 이유
0
99
1
big query 쿼리 결과 컬럼 폭
0
108
3
battle 스키마 조건 복사 파일이 열리지 않아요.
0
130
1
6-5 데이터 검증 결과 예시문제
0
79
2
battle 스키마 조건 복사붙여넣기용 자료
0
115
2





