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
'내일배움캠프 > TIL' 카테고리의 다른 글
[TIL] 241128_코드카타,RAND함수 (5) | 2024.11.28 |
---|---|
[TIL]241127_코드카타, SQL 연습문제4 (0) | 2024.11.27 |
[TIL]SQL코드카타, SQL과제Lv.2,3 (0) | 2024.11.26 |
[TIL]241125_SQL자격증준비 (1) | 2024.11.25 |
[TIL]숫자 계산이나 문자 가공 시 자주 발생하는 오류, 사전캠프과제7 (0) | 2024.11.14 |