๋ฌธ์
https://leetcode.com/problems/immediate-food-delivery-ii/description/
์ฝ๋ ๋ต์
๋์ ์ฝ๋ ๋ต์
select round(count(*) * 100 / (select count(distinct customer_id) from delivery), 2) as immediate_percentage
from delivery
where (customer_id, customer_pref_delivery_date) in
(select customer_id, min(order_date) over (partition by customer_id)
from delivery)
-- 7๋ถ
ํ ๋ธ๋ก๊ทธ์์ ํผ์จ ๋ต์
select round(avg(customer_pref_delivery_date = order_date)*100,2) as immediate_percentage
from delivery
where (customer_id, order_date) in
(select customer_id, min(order_date)
from delivery
group by 1) ;
๋ฌธ์ ํ์ด
๋ด ์ฝ๋ ๋ต์ ํ์ด
where์ ์์ ๊ณ ๊ฐ๋ณ ์ฒซ๋ฒ์งธ ์ฃผ๋ฌธ๊ณผ ์ผ์นํ๋ ์ฃผ๋ฌธ์ ์ฐพ๋๋ค
๊ทธ๋ฆฌ๊ณ select๋ฌธ์์ ๋ถ์๋ก countํด์ฃผ๊ณ
๋ถ๋ชจ๋ ์๋ก์ด select๋ฌธ์ผ๋ก ๊ตฌํด์ค๋ค.
ํ ๋ธ๋ก๊ทธ ๋ต์ ํ์ด
select customer_pref_delivery_date = order_date as immediate_percentage
from delivery
where (customer_id, order_date) in
(select customer_id, min(order_date)
from delivery
group by 1)

customer_pref_delivery_date = order_date๊ฐ true์ด๋ฉด 1 / false์ด๋ฉด 0์ด ๋ฐํ๋๋ค.
๊ทธ๋ฆฌ๊ณ avg๋ฅผ ์์ฐ๋ฉด 0.5๊ฐ ๋์ค๊ณ ์ด๋ฅผ ๋ฐฑ๋ถ์จ๋ก ๋ณํํด์ค๋ค.
๋๋ ์
ํ ๋ธ๋ก๊ทธ ํ์ด๊ฐ ๋ถ๋ชจ๋ฅผ ๋ฐ๋ก ๊ตฌํ์ง ์์๋ ๋๋ ๋ ์ค๋งํธํ ๋ฐฉ๋ฒ์ธ ๋ฏ?