Lv1. 데이터 속 김서방 찾기
- 상황 : 여러분들은 스파르타코딩클럽의 분석가로 취직했습니다. DBeaver를 테스트 해볼 겸 "김"씨로 시작하는 이용자들 수를 세어 보기로 했습니다.
- 데이터 설명.
- user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블 입니다.
- user_id : 익명화된 유저들의 아이디(varchar255)
- created_at : 아이디 생성 날짜(timestamp)
- updated_at : 정보 업데이트 날짜(timestamp)
- name : 익명화된 유저들의 이름(varchar255)
- email : 이메일(varchar255)
- user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블 입니다.
- 문제 : 다음과 같은 결과테이블을 만들어봅시다.
- name_cnt : "김"씨 성을 가지고 있는 교육생 수
SELECT COUNT(DISTINCT(customer_id)) name_cnt
FROM user
WHERE SUBSTR(name,1,1) = '김'
"김"씨 성을 가져오는 방법은 LIKE도 있지만 substr을 이용하는 방법도 있다.
- substring(substr) : substr(가져올 컬럼, 몇번째 글자부터 가져올 것 인지, 몇 글자를 가져올 것 인지)
우리는 이름(name)에서 첫번째 글자부터 한글자만 가져오면 되기에 1, 1을 적어주었다.
그리고 그 글자가 "김" 일 때만 가져오도록 조건문(WHERE)에 적어준다.
여기서 바로 COUNT(customer_id) name_cnt 를 해도 되지만
혹시 중복 가입된 사람이 있을수도 있기에 DISTINCT 사용해준다.
- DISTINCT : 중복데이터 제거
아직 LV.1 문제라 어렵지 않았고 문제를 다 풀고 정답을 확인하는데 테이블명이 'users' 로 되어있는 것 말고는 모두 똑같아서 은근 뿌듯했다..ㅎ
답은 users라고 적혀있지만 문제 데이터 설명에선 user 테이블이라고 설명했기에 user라고 적어도 큰 문제는 되지 않을 것 같다.
'TIL > 사전캠프 퀘스트' 카테고리의 다른 글
TIL 2024-09-23(SQL_달리기반 3.) (0) | 2024.09.23 |
---|---|
TIL 2024-09-23(SQL_달리기반 2.) (0) | 2024.09.23 |
TIL 2024-09-20( JAVA_걷기반 반복문 연습하기 Part 1~3) (0) | 2024.09.20 |
TIL 2024-09-20( SQL_걷기반 마지막 문제 ) (1) | 2024.09.20 |
TIL 2024-09-19( SQL_걷기반 8~10 ) (0) | 2024.09.19 |