https://school.programmers.co.kr/learn/courses/30/lessons/151139
๋ฌธ์
1. CAR_RENTAL_COMPANY_RENTAL_HISTORY ํ ์ด๋ธ์์
2. ๋์ฌ ์์์ผ์ ๊ธฐ์ค์ผ๋ก 2022๋ 8์๋ถํฐ 2022๋ 10์๊น์ง ์ด ๋์ฌ ํ์๊ฐ 5ํ ์ด์์ธ ์๋์ฐจ๋ค์ ๋ํด์
3. ํด๋น ๊ธฐ๊ฐ ๋์์ ์๋ณ ์๋์ฐจ ID ๋ณ ์ด ๋์ฌ ํ์(์ปฌ๋ผ๋ช : RECORDS) ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
4. ๊ฒฐ๊ณผ๋ ์์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , ์์ด ๊ฐ๋ค๋ฉด ์๋์ฐจ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
5. ํน์ ์์ ์ด ๋์ฌ ํ์๊ฐ 0์ธ ๊ฒฝ์ฐ์๋ ๊ฒฐ๊ณผ์์ ์ ์ธํด์ฃผ์ธ์.
์ฝ๋
-- ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์
select month(start_date) as month, car_id, count(history_id) as records
from car_rental_company_rental_history
where car_id in (
select car_id
from car_rental_company_rental_history
where start_date between '2022-08-01' and '2022-10-31'
group by car_id having count(history_id) >= 5)
and start_date between '2022-08-01' and '2022-10-31'
group by month, car_id having count(history_id) != 0
order by month asc, car_id desc
ํ์ด
์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋์ฐจ๋ค์ ๋ฝ์๋ ๋๋ค.
2. ๋์ฌ ์์์ผ์ ๊ธฐ์ค์ผ๋ก 2022๋ 8์๋ถํฐ 2022๋ 10์๊น์ง ์ด ๋์ฌ ํ์๊ฐ 5ํ ์ด์์ธ ์๋์ฐจ๋ค์ ๋ํด์
select car_id
from car_rental_company_rental_history
where start_date between '2022-08-01' and '2022-10-31'
group by car_id having count(history_id) >= 5
๋ฝ์๋ธ ์๋์ฐจ์ ํด๋นํ๋ ๊ธฐ๋ก๋ค์ ๋ฝ์๋ ๋๋ค
์ด๋ ๋ ์ง ์กฐ๊ฑด์ ํ๋ฒ ๋ ๊ฑธ์ด์ค์ผ ํด๋น ๊ธฐ๊ฐ์ ์ํ๋ ๊ธฐ๋ก์ด ๋ฝํ๋๋ค (์์ผ๋ฉด ๋ชจ๋ ๋ ์ง์์ ๋ฝ์๋)
select *
from car_rental_company_rental_history
where car_id in (
select car_id
from car_rental_company_rental_history
where start_date between '2022-08-01' and '2022-10-31'
group by car_id having count(history_id) >= 5)
and start_date between '2022-08-01' and '2022-10-31'
์ด์ ์๋ณ๋ก, ์ฐจ๋ณ๋ก ๊ทธ๋ฃนํํ๊ณ ์๊ณผ ์ฐจ์ ๊ธฐ๋ก์ ์ถ๋ ฅํฉ์๋ค (๋ฌธ์ 3๋ฒ, 5๋ฒ ์กฐ๊ฑด)
3. ํด๋น ๊ธฐ๊ฐ ๋์์ ์๋ณ ์๋์ฐจ ID ๋ณ ์ด ๋์ฌ ํ์(์ปฌ๋ผ๋ช : RECORDS) ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
5. ํน์ ์์ ์ด ๋์ฌ ํ์๊ฐ 0์ธ ๊ฒฝ์ฐ์๋ ๊ฒฐ๊ณผ์์ ์ ์ธํด์ฃผ์ธ์.
select month(start_date) as month, car_id, count(history_id) as records
from car_rental_company_rental_history
where car_id in (
select car_id
from car_rental_company_rental_history
where start_date between '2022-08-01' and '2022-10-31'
group by car_id having count(history_id) >= 5)
and start_date between '2022-08-01' and '2022-10-31'
group by month, car_id having count(history_id) != 0
์์๋ ์์ง ๋ง์ธ์! (4๋ฒ ์กฐ๊ฑด)
4. ๊ฒฐ๊ณผ๋ ์์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , ์์ด ๊ฐ๋ค๋ฉด ์๋์ฐจ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
select month(start_date) as month, car_id, count(history_id) as records
from car_rental_company_rental_history
where car_id in (
select car_id
from car_rental_company_rental_history
where start_date between '2022-08-01' and '2022-10-31'
group by car_id having count(history_id) >= 5)
and start_date between '2022-08-01' and '2022-10-31'
group by month, car_id having count(history_id) != 0
order by month asc, car_id desc