Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 도커
- CS
- redis
- SQL
- Doker
- git
- django
- 쿠키(cookie)
- 코딩테스트
- Til
- viewsets
- nginx
- web
- 연습
- 파이썬
- github
- 장고
- NoSQL
- 자료구조
- ERD
- JWT
- Wil
- 개발공부
- 티스토리챌린지
- 오블완
- docker
- 아티클 스터디
- Python
- 세션(Session)
- flask
Archives
- Today
- Total
SteadyDrills
[TIL]SQL 과제 Lv3. 이용자의 포인트 조회하기 본문
20240612
문제의 조건: 두 테이블을 LEFT JOIN을 이용해서 JOIN 하고, POINT에서 NULL값을 0으로 표기하도록 컬럼값을 추출하 라.
나의 답:
SELECT u.user_id,
u.email,
IFNULL(p.point,'0') "point"
FROM users u LEFT JOIN point_users p ON u.user_id = p.user_id
ORDER BY p.point desc ;
정답:
SELECT
u.user_id, u.email,
COALESCE(p.point,0) as point
FROM
users u
left JOIN
point_users p ON u.user_id = p.user_id
order by p.point desc;
답을 도출하기 전에 아래와 같이 풀었는데 조금 더 간결하게 하기 위해 수정했다.
SELECT u.user_id,
u.email,
CASE WHEN p.point IS NULL THEN '0'
ELSE p.point end "point"
FROM users u LEFT JOIN point_users p ON u.user_id = p.user_id
ORDER BY p.point desc ;
위 문제를 풀면서 NULL을 처리하는 다양한 함수를 배웠다. 특히 'COALESCE' 함수는 '여러 인수 중에서 첫 번째로 NULL이 아닌 값을 반환하는 함수'라는 점과 테이블이 단일인지 , JOIN으로 합쳐진 건지에 따라 달라지는 부분도 흥미로웠다.
'SQL' 카테고리의 다른 글
[TIL] SQL 연습문제6 & SQL 코딩테스트 연습 문제 (1) | 2024.06.14 |
---|---|
[TIL] SQL 코딩 테스트 연습 문제 (2) | 2024.06.13 |
[TIL] SQL 과제 Lv2. 날짜별 획득포인트 조회하기 (0) | 2024.06.11 |
[TIL] SQL 과제 Lv1. 데이터 속 김서방 찾기 (0) | 2024.06.10 |
[TIL] SQL 연습문제5) 공부하다보니 팀 프로젝트 시간이 왔어요! (0) | 2024.06.05 |