Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with order_order as (
- select *
- from
- (
- select f.*, row_number() over(partition by id order by modified_at desc) as rn
- from pathao_food.order_order as f
- where modified_at >= '2019-01-01'
- )
- where rn = 1
- )
- Select
- * ,
- safe_divide(delivered_order* 100 , Assigned_order) as CR
- From
- ( select
- Extract(Year from a.ED) as year,
- Extract(Month from a.ED) as month ,
- Count(a.driver_id) as No_of_Riders,
- Sum(a.Assigned_order) as Assigned_order,
- Sum(b.accepted_order) as accepted_order,
- Sum(b.delivered_order) as delivered_order
- from (
- select driver_id, ED, count(tracking_id) Assigned_order
- from
- (
- select date(timestamp_add(order_order.created_at, interval 6 hour)) ED, tracking_id, driver_id
- from order_order
- CROSS JOIN UNNEST(split(order_order.drivers_tried, ',')) as driver_id
- where
- date(timestamp_add(order_order.created_at, interval 6 hour)) >= '2019-01-01'
- and order_order.city = 1
- )a
- where a.driver_id <> ''
- group by 1,2)a
- left join
- (select
- date(timestamp_add(order_order.created_at, interval 6 hour)) ED,
- driver, count(tracking_id) accepted_order,
- count(case when status = 'DELIVERED' then tracking_id end) delivered_order
- from order_order
- group by 1,2)b
- on a.ED=b.ed and cast(a.driver_id as numeric) = cast(b.driver as numeric)
- Group by 1 , 2
- Order By 1,2)
- Order By 1,2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement