Posted by gurpreet, Nov. 25, 2021, 12:42 p.m.
SQL#136
My answer is differing a little from the actual result posted.
Query below:
With delivery_flagged as (
SELECT a.order_id,
extract(year from b.created_at) as year,
extract(month from b.created_at) as mon,
case when EXTRACT (EPOCH FROM a.delivered_at - b.created_at)::int/60 > 60
then 1
else 0 end as time_flag
FROM food_delivery a, food_order b
WHERE a.order_id = b.order_id
AND extract(year from b.created_at) = 2021
)
SELECT year,
mon,
sum(time_flag)*100.0/count(time_flag) as percent
FROM delivery_flagged
GROUP BY year, mon
Query below:
With delivery_flagged as (
SELECT a.order_id,
extract(year from b.created_at) as year,
extract(month from b.created_at) as mon,
case when EXTRACT (EPOCH FROM a.delivered_at - b.created_at)::int/60 > 60
then 1
else 0 end as time_flag
FROM food_delivery a, food_order b
WHERE a.order_id = b.order_id
AND extract(year from b.created_at) = 2021
)
SELECT year,
mon,
sum(time_flag)*100.0/count(time_flag) as percent
FROM delivery_flagged
GROUP BY year, mon