Я пытаюсь выяснить, как правильно рассчитать% в sql на основе следующего вопроса:
Предположим, есть два вида поставок: «Немедленная» и «Запланированная». Доставка считается «Немедленной», если запрошенное время доставки находится в пределах часа с момента создания доставки, в то время как «Запланированная», если она превышает час. Какой процент от общего объема поставок является «Немедленным»?
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