--GET THE FIRST VEHICLE RESERVATION PER USER/APP/VEHICLE create or replace table temp_eu.delete_first_ride_reserve as with first_reservations as ( select vrh.created_at, vrh.user_id, vrh.company_vehicle_id as vehicle_company_id, vrh.company_id as app_co_id, co1.name as vehicle_company_name, co2.name as app_company_name, row_number() over (partition by vrh.user_id,vrh.company_vehicle_id,vrh.company_id order by vrh.created_at asc) as r_n from `reby-cloud.analytics_reby_v1_eu.pg_vehicle_reservation_history` vrh left join `reby-cloud.analytics_reby_v1_eu.pg_company` co1 on vrh.company_vehicle_id = co1.id left join `reby-cloud.analytics_reby_v1_eu.pg_company` co2 on vrh.company_vehicle_id = co2.id QUALIFY r_n = 1 ), --FINISH --GET THE FIRST RIDE PER USER/APP/VEHICLE rides as ( select id, created_at, user_id, if(vehicle_company_id is null,'c_3qteetfhxjshx4j54111',vehicle_company_id) as vehicle_company_id, if(company_id is null,'c_3qteetfhxjshx4j54111',company_id) as company_id from analytics_reby_v1_eu.pg_rides_json ), first_ride_pre as ( select r.id, r.user_id, r.created_at as ride_date, r.vehicle_company_id, r.company_id as app_co_id, co.name as vehicle_company_name, co2.name as app_company_name, cu.id as cu_id_vehicle, cu2.id as cu_id_app, --row_number() over (partition by r.user_id,r.vehicle_company_id order by r.created_at asc) as rank_ from rides r left join `reby-cloud.analytics_reby_v1_eu.pg_company` co on r.vehicle_company_id = co.id left join `reby-cloud.analytics_reby_v1_eu.pg_company` co2 on r.company_id = co2.id left join `reby-cloud.reby_marketing_eu.pg_company_user` cu on r.user_id = cu.user_id and r.vehicle_company_id = cu.company_id left join `reby-cloud.reby_marketing_eu.pg_company_user` cu2 on r.user_id = cu2.user_id and r.company_id = cu2.company_id ), first_ride_per_app_vehicle as ( select *, row_number() over (partition by user_id, app_company_name, vehicle_company_name order by ride_date asc) as rank_ from first_ride_pre qualify rank_ = 1 ), --FINISH --GET FIRST DATE BETWEEN FIRST RIDE AND/OR FIRST RESERVATION first_date_ride_reserv as ( select user_id, vehicle_company_name, app_company_name, created_at, vehicle_company_id, app_co_id, row_number() over (partition by user_id, app_company_name, vehicle_company_name order by created_at asc) as rank_ from( --UNION BETWEEN RIDES AND RESERVATIONS select user_id, vehicle_company_name, app_company_name, created_at, vehicle_company_id, app_co_id from first_reservations UNION ALL select user_id, vehicle_company_name, app_company_name, ride_date as created_at, vehicle_company_id, app_co_id from first_ride_per_app_vehicle ) QUALIFY rank_=1 ) select * from first_date_ride_reserv --FINISH ;
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter