我正在尝试根据以下问题找出计算 sql 百分比的正确方法:
假设有两种交付方式:“立即”和“预定”。如果请求的交付时间在创建交付的一小时内,则交付为“立即”,如果超过一小时,则为“预定”。“即时”交付占总交付的百分比?</p>
Table name: deliveries
delivery_id int
order_created_at timestamp
predicted_store_pickup_time timestamp
actual_store_pickup_at timestamp
requested_delivery_time timestamp
dasher_id int
restaurant_id int
consumer_id int
我有类似下面的东西,但不确定是否有更有效的计算方法?
with immediate as (
select *
from deliveries
where datediff(hour, order_created_at, requested_delivery_time) <= 1
)
select count(i.*) / count(d.*) as ratio
from immediate i
full outer join deliveries d
on i.delivery_id = d.delivery_id