Advertisement
aristotle029

Untitled

Jul 11th, 2024
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. WITH retail_data AS (
  2.     SELECT t1.order_id, t1.fulfillment_end_area_code, t1.latest_order_status, t2.statename,
  3.     year(date_parse(date_format(from_unixtime(t1.order_created_at / 1000000), '%Y-%m-%d'), '%Y-%m-%d')) year,
  4.     CASE
  5.         WHEN month(date_parse(date_format(from_unixtime(t1.order_created_at / 1000000), '%Y-%m-%d'), '%Y-%m-%d')) IN (1, 2, 3) THEN 'Q1'
  6.         WHEN month(date_parse(date_format(from_unixtime(t1.order_created_at / 1000000), '%Y-%m-%d'), '%Y-%m-%d')) IN (4, 5, 6) THEN 'Q2'
  7.         WHEN month(date_parse(date_format(from_unixtime(t1.order_created_at / 1000000), '%Y-%m-%d'), '%Y-%m-%d')) IN (7, 8, 9) THEN 'Q3'
  8.         WHEN month(date_parse(date_format(from_unixtime(t1.order_created_at / 1000000), '%Y-%m-%d'), '%Y-%m-%d')) IN (10, 11, 12) THEN 'Q4'
  9.     END AS quarter
  10.     FROM hudi_order_fulfillment_orders t1 LEFT JOIN pincode_state_mapping t2
  11.     ON (t1.fulfillment_end_area_code = t2.pincode)
  12. ),
  13. retail_agg AS (
  14.     SELECT
  15.         fulfillment_end_area_code,
  16.         year,
  17.         quarter,
  18.         statename,
  19.         COUNT(order_id) num_orders,
  20.         SUM(CASE WHEN LOWER(latest_order_status) = 'completed' THEN 1 ELSE 0 END) AS num_completed_orders,
  21.         SUM(CASE WHEN LOWER(latest_order_status) = 'in-progress' THEN 1 ELSE 0 END) AS num_in_progress_orders,
  22.         SUM(CASE WHEN LOWER(latest_order_status) = 'cancelled' THEN 1 ELSE 0 END) AS num_cancelled_orders
  23.     FROM retail_data
  24.     GROUP BY fulfillment_end_area_code, year, quarter, statename
  25. )
  26. SELECT t1.fulfillment_end_area_code, t1.year, t1.quarter, t1.statename, t1.num_orders, t1.num_completed_orders, t1.num_in_progress_orders, t1.num_cancelled_orders, t2.lat, t2.long
  27. FROM
  28.     retail_agg t1
  29. LEFT JOIN
  30.     fulfillment_end_area_code_coordinates_mapping t2
  31. ON (t1.fulfillment_end_area_code = t2.pincode)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement