내일배움캠프/TIL

[TIL]SQL과제_Lv1. 데이터 속 김서방 찾기

dydatablog 2024. 11. 22. 18:10
728x90
  • 문제: 다음과 같은 결과테이블을 만들어봅시다.
    • name_cnt: “김”씨 성을 가지고 있는 교육생의 수

내가 쓴 쿼리:

SELECT name,
	IF(name = '김**',COUNT(name),0) 'cnt_name'
FROM users
GROUP BY 1
ORDER BY 1

 

문제점: 1. 김씨의 데이터가 1행에 표시되지 않음.

2. 본 데이터에서는 김**으로 지정하기 쉬웠지만 실제 데이터는 김씨를 가진 이름이 모두 다를 수가 있음.

 

해결 방법: substr 내장함수 사용. distinct으로 중복값 제거

SELECT COUNT(DISTINCT(user_id)) as name_cnt
FROM users
WHERE SUBSTR(name,1,1) = '김'

결과 값:

728x90