짜리몽땅 매거진
[SQL] solvesql 코딩테스트 연습9 본문
문제1. 두 테이블 결합하기
출처 : solvesql 연습문제
문제 정보 : 난이도 2 / 정답률 31.18%
https://solvesql.com/problems/join/
정답 쿼리
select DISTINCT
athlete_id
from
records a
join events b on a.event_id = b.id
where
b.sport = 'Golf'
문제 해설
문제2. 버뮤다 삼각지대에 들어가버린 택배
출처 : solvesql 연습문제
문제 정보 : 난이도 2 / 정답률 35.35%
https://solvesql.com/problems/shipment-in-bermuda/
정답 쿼리
SELECT strftime('%Y-%m-%d', order_delivered_carrier_date) AS delivered_carrier_date,
COUNT(order_id) AS orders
FROM olist_orders_dataset
WHERE strftime('%Y-%m', order_delivered_carrier_date) = '2017-01'
AND order_delivered_carrier_date IS NOT NULL
AND order_delivered_customer_date IS NULL
GROUP BY delivered_carrier_date
ORDER BY delivered_carrier_date;
문제 해설
1. 주요 포인트 1 - where절 날짜 조건
WHERE strftime('%Y-%m', order_delivered_carrier_date) = '2017-01'
2017년 1월의 데이터만 가져와야하는데, order_delivered_carrier_date 값은 문자열이 아닌 날짜 형식으로 되어있기 때문에 그냥 order_delivered_carrier_date = '2017-01%' 과 같은 방식으로 작성하면 빈 테이블이 출력된다. 따라서 날짜를 년-월 문자열 형식으로 포맷팅 후, 2017년 1월에 해당한다는 의미로 쿼리를 작성하면 원하는 테이블을 출력할 수 있다.
'Data > SQL' 카테고리의 다른 글
[SQL] solvesql 코딩테스트 연습10 (0) | 2024.06.04 |
---|---|
[SQL] 코멘토 프로젝트 - SQL을 활용해 다양한 지표 추출하기 (0) | 2024.05.28 |
[SQL] 코멘토 프로젝트 - SQL 기본 문법 익히기 (0) | 2024.05.21 |
[SQL] solvesql 코딩테스트 연습8 (0) | 2024.05.08 |
[SQL] solvesql 코딩테스트 연습7 (0) | 2024.04.29 |