728x90
문제
따릉이를 운영하는 서울시에서는 매달 따릉이 자전거의 정기점검을 진행하고 있습니다.
1달에 주행 거리가 50km 이상인 자전거가 정기점검 대상에 포함됩니다.
2021년 2월 정기점검 대상 자전거를 추출하려고 합니다.
rental_history 테이블을 사용해 2021년 1월 한 달간 총 주행 거리가 50km 이상인 자전거의 ID를 출력하는 쿼리를 작성해주세요.
https://solvesql.com/problems/inspection-needed-bike/
문제 풀이
-- 1번 풀이
SELECT bike_id
FROM (
SELECT bike_id
FROM rental_history
WHERE rent_at LIKE '2021-01%' -- 2021년 1월 렌트한 자전거
GROUP BY bike_id
HAVING SUM(distance) >= 50000 -- bike_id별 총 주행 거리가 50km 이상인 bike_id만 추출
) AS filtered_bikes;
-- 2번 풀이
SELECT DISTINCT bike_id -- 중복된 bike_id 제거
FROM rental_history
WHERE bike_id in (
SELECT bike_id
FROM rental_history
WHERE rent_at LIKE '2021-01%' -- 2021년 1월 렌트한 자전거
GROUP BY bike_id
HAVING SUM(distance) >= 50000 -- bike_id별 총 주행 거리가 50km 이상인 bike_id만 추출
);
SQL을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90