1. SQL 실전 문제풀이 ( Lv1. 데이터 속 김서방 찾기 )
- 문제 : '김'씨 성을 가진 유저 수 구하기
더보기

TABLE
: user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블.
- user_id: 익명화된 유저들의 아이디(varchar255)
- created_at: 아이디 생성 날짜(timestamp)
- updated_at: 정보 업데이트 날짜(timestamp)
- name: 익명화된 유저들의 이름(varchar255)
- email: 이메일(varchar255)

- 풀이 과정 (EDA & 문제 풀이)
더보기




1. EDA
- user 테이블 전체 null 행/값 허용 하지 않음 (즉, 모든 컬럼의 정보를 입력해야 가입 완료)
- user_id 컬럼이 PK, 중복없이 id 부여 됨.
- user_id 와 email은 1:1 관계 (유저당 이메일 1개 기재 ) → id별 email 수 카운팅 했을때 2개 이상인 출력 값 없음.



2. 문제풀이
- name 컬럼에서 '김'씨 성을 가진 유저 필터링 → 특정 문자가 포함된 문자열 추출 함수 LIKE 사용)
- user_id 나 전체 행 갯수 카운팅 COUNT DISTINCT 함수 활용

🔥DEVELOP🔥
더보기

- 특정 문자열 추출 함수 SUBSTR 으로도 문제 풀이 가능 → 첫 글자가 '김' 일때 필터링
SELECT name
,COUNT(DISTINCT user_id ) AS name_cnt
FROM users
WHERE SUBSTR(name,1,1)='김'

2. SQL 실전 문제풀이 ( Lv2. 날짜별 획득포인트 조회하기 )
- 문제 : 날짜별 평균 포인트 값 조회 (평균값은 정수로 반올림)
더보기

TABLE
: point_users 테이블은 스파르타코딩클럽 가입 유저들의 포인트에 대한 정보를 기록한 테이블.

- 풀이 과정 (EDA & 문제 풀이)
더보기


1. 간단 EDA
- 평균 값 조회 이므로 point 컬럼의 null 값 여부 확인 해보자 → 테이블 전체에 null 값 없음, 특이사항 없이 avg 함수 사용해도 됨

2. 문제풀이
- created_at 컬럼 날짜 형식 변경 ( 일자 까지 ) → DATE or DATE_FORMAT 함수 활용
- 날짜별 평균 값 조회 → 위에 날짜 형 변환 함수 그룹바이 & 평균 값 조회
- 평균값 정수형으로 반올림 → ROUND 함수 활용

'SQL' 카테고리의 다른 글
실습 | 다중 컬럼 서브쿼리/ Correlated 서브쿼리/ DBeaver 에서 with문 사용 안될 때 해결 법 (0) | 2024.11.21 |
---|---|
실습 | EDA / 다중 테이블 JOIN / 서브쿼리 VS 윈도우 함수 (1) | 2024.11.20 |
실습 | JOIN/ GROUP BY/ 서브쿼리/ 순번 지정 윈도우 함수 (0) | 2024.11.18 |
실습 | LEFT JOIN / NULL 값 처리법 / 서브쿼리 / MAX WINDOW (1) | 2024.11.18 |
SQLD | 그룹 함수와 계층형 질의 (0) | 2024.11.14 |