thongthongthong

Untitled

Jan 4th, 2022
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 7.90 KB | None | 0 0
  1. WITH
  2. a AS
  3. (
  4. SELECT
  5.     grass_date,
  6.     buyer_id,
  7.     payment_method_id,
  8.     gmv_usd,
  9.     TYPE,
  10.     order_id,
  11.     pv_voucher_code
  12. FROM
  13. (
  14.     SELECT
  15.         from_unixtime(o.create_time - 3600) AS grass_date
  16.         , o.user_id AS buyer_id
  17.         ,CASE WHEN (channel_id IN (5001800,5002900) OR (regexp_like(v.code,'^AP') AND channel_id NOT IN (5002800,5000102) )) THEN 30 ELSE NULL END AS payment_method_id
  18.         ,final_price/23500 AS gmv_usd
  19.         ,'dp' AS TYPE
  20.         ,o.order_id
  21.         ,'' pv_voucher_code
  22.     FROM digitalpurchase.shopee_digital_product_order_v2_vn_db__order_tab__reg_daily_s0_live o
  23.     LEFT JOIN digitalpurchase.shopee_digital_product_promotion_vn_db__voucher_tab__reg_daily_s0_live v   ON v.order_id = o.order_id AND v.use_status = 'VU2' AND v.return_status = 'VR0'   
  24.     WHERE 1=1
  25.         AND (o.transaction_id != '' OR(payment_status = 'P2' AND final_price = 0))
  26.         AND platform = 1
  27.         AND DATE(from_unixtime(o.create_time - 3600)) >= CURRENT_DATE - INTERVAL '2' MONTH
  28.  
  29.     UNION
  30.  
  31.     SELECT
  32.         from_unixtime(create_timestamp - 3600) grass_date,
  33.         buyer_id,
  34.         payment_method_id,
  35.         gmv_usd,
  36.         'mkp' AS TYPE,
  37.         CAST(order_id AS VARCHAR) order_id,
  38.         pv_voucher_code
  39.     FROM mp_order.dwd_order_all_ent_df__vn_s0_live
  40.     WHERE 1=1
  41.         AND DATE(from_unixtime(create_timestamp - 3600)) >= CURRENT_DATE - INTERVAL '2' MONTH
  42.         AND NOT (gmv < 20 AND shop_id IN (134344983,145418026))
  43.         -- and order_item_status not in (3,4)
  44. )
  45. )
  46. ,dim_user AS (
  47. SELECT
  48. user_id
  49. -- ,case when gender in (1, 3) then 'male' else 'female' end gender
  50. -- ,case
  51. -- when 2021 - year(birthday)  between 0 and 17 then '0-17'
  52. -- when 2021 - year(birthday)  between 18 and 24 then '18-24'
  53. -- when 2021 - year(birthday)  between 25 and 34 then '25-34'
  54. -- when 2021 - year(birthday)  between 35 and 44 then '35-44'
  55. -- when 2021 - year(birthday)  >=45 then '45+'
  56. -- else null
  57. -- end age
  58. ,CASE
  59.     WHEN default_delivery_address_state = 'Hà Nội' THEN 'hn'
  60.     WHEN default_delivery_address_state = 'TP. Hồ Chí Minh' THEN 'hcm'
  61.     WHEN default_delivery_address_state IN ('Hà Tĩnh','Đắk Lắk','Nghệ An','Bình Định','Đà Nẵng','Quảng Bình','Khánh Hòa','Gia Lai','Quảng Trị'
  62.     ,'Quảng Nam','Thừa Thiên Huế','Quảng Ngãi','Bình Thuận','Lâm Đồng','Đắk Nông','Kon Tum','Phú Yên','Ninh Thuận','Thanh Hóa') THEN '2 central'
  63.     WHEN default_delivery_address_state IN ('Yên Bái','Hà Nội','Hà Giang','Phú Thọ','Hưng Yên','Hải Phòng','Bắc Giang','Hòa Bình','Nam Định'
  64.     ,'Bắc Ninh','Thái Nguyên','Quảng Ninh','Vĩnh Phúc','Lạng Sơn','Hà Nam','Thái Bình','Lào Cai','Hải Dương','Ninh Bình','Tuyên Quang','Sơn La','Điện Biên','Cao Bằng','Bắc Kạn','Lai Châu') THEN '1 north'
  65.     WHEN default_delivery_address_state IN ('Bình Phước','Cần Thơ','Long An','TP. Hồ Chí Minh','Đồng Nai','Bình Dương','An Giang','Trà Vinh'
  66.     ,'Bến Tre','Tây Ninh','Đồng Tháp','Vĩnh Long','Sóc Trăng','Cà Mau','Tiền Giang','Kiên Giang','Bà Rịa - Vũng Tàu','Hậu Giang','Bạc Liêu') THEN '3 south'
  67.     ELSE ''
  68. END reg2
  69. -- ,case
  70. --     when default_delivery_address_state = 'Hà Nội' then '1 hn'
  71. --     when default_delivery_address_state = 'TP. Hồ Chí Minh' then '2 hcm'
  72. --     when default_delivery_address_state in ('Bà Rịa - Vũng Tàu','Bắc Ninh','Bình Dương','Cần Thơ','Đà Nẵng','Đồng Nai','Hải Phòng','Khánh Hòa','Quảng Ninh','Thái Nguyên','Vĩnh Phúc') then '3 high'
  73. --     when default_delivery_address_state in ('Bắc Giang','Bình Định','Bình Phước','Bình Thuận','Hà nam','Hà Tĩnh','Hải Dương','Hòa Bình',
  74. --     'Hưng Yên','Kiên Giang','Lâm Đồng','Lào Cai','Long An','Ninh Bình','Quảng Nam','Quảng Ngãi','Tây Ninh','Tiền Giang','Vĩnh Long') then '4 mid'
  75. --     when default_delivery_address_state in ('An Giang','Bắc Kạn','Bạc Liêu','Bến Tre','Cà Mau','Cao Bằng','Đắk Lắk','Đắk Nông','Điện Biên'
  76. --     ,'Đồng Tháp','Gia Lai','Hà Giang','Hậu Giang','Thừa Thiên huế','Kon Tum','Lai Châu','Lạng Sơn','Nam Định','Nghệ An','Ninh Thuận','Phú Thọ'
  77. --     ,'Phú Yên','Quảng Bình','Quảng Trị','Sóc Trăng','Sơn La','Thái Bình','Thanh Hóa','Trà Vinh','Tuyên Quang','Yên Bái') then '5 low'
  78. -- end reg1
  79. FROM
  80. mp_user.dim_user__vn_s0_live
  81. WHERE 1=1
  82. AND grass_date = CURRENT_DATE - INTERVAL '2' DAY
  83. )
  84. SELECT
  85. week(DATE(grass_date)) week
  86. ,'' note
  87. --spp_mkp_order
  88. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30)                 AND TYPE = 'mkp' THEN a.order_id END) spp_mkp_order_total
  89. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = 'hn' AND TYPE = 'mkp' THEN a.order_id END) spp_mkp_order_hn
  90. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = 'hcm' AND TYPE = 'mkp' THEN a.order_id END) spp_mkp_order_hcm
  91. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '1 north' AND TYPE = 'mkp' THEN a.order_id END) spp_mkp_order_north
  92. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '2 central' AND TYPE = 'mkp' THEN a.order_id END) spp_mkp_order_central
  93. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '3 south' AND TYPE = 'mkp' THEN a.order_id END) spp_mkp_order_south
  94. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '' AND TYPE = 'mkp' THEN a.order_id END) spp_mkp_order_blank
  95.  
  96. --shp_mkp_order
  97. ,COUNT(DISTINCT CASE WHEN                 TYPE = 'mkp' THEN a.order_id END) shp_mkp_order_total
  98. ,COUNT(DISTINCT CASE WHEN reg2 = 'hn' AND TYPE = 'mkp' THEN a.order_id END) shp_mkp_order_hn
  99. ,COUNT(DISTINCT CASE WHEN reg2 = 'hcm' AND TYPE = 'mkp' THEN a.order_id END) shp_mkp_order_hcm
  100. ,COUNT(DISTINCT CASE WHEN reg2 = '1 north' AND TYPE = 'mkp' THEN a.order_id END) shp_mkp_order_north
  101. ,COUNT(DISTINCT CASE WHEN reg2 = '2 central' AND TYPE = 'mkp' THEN a.order_id END) shp_mkp_order_central
  102. ,COUNT(DISTINCT CASE WHEN reg2 = '3 south' AND TYPE = 'mkp' THEN a.order_id END) shp_mkp_order_south
  103. ,COUNT(DISTINCT CASE WHEN reg2 = '' AND TYPE = 'mkp' THEN a.order_id END) shp_mkp_order_blank
  104.  
  105. --spp_mkp_buyer
  106. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30)                 AND TYPE = 'mkp' THEN a.buyer_id END) spp_mkp_buyer_total
  107. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = 'hn' AND TYPE = 'mkp' THEN a.buyer_id END) spp_mkp_buyer_hn
  108. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = 'hcm' AND TYPE = 'mkp' THEN a.buyer_id END) spp_mkp_buyer_hcm
  109. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '1 north' AND TYPE = 'mkp' THEN a.buyer_id END) spp_mkp_buyer_north
  110. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '2 central' AND TYPE = 'mkp' THEN a.buyer_id END) spp_mkp_buyer_central
  111. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '3 south' AND TYPE = 'mkp' THEN a.buyer_id END) spp_mkp_buyer_south
  112. ,COUNT(DISTINCT CASE WHEN payment_method_id IN (28, 30) AND reg2 = '' AND TYPE = 'mkp' THEN a.buyer_id END) spp_mkp_buyer_blank
  113.  
  114. --shp_mkp_buyer
  115. ,COUNT(DISTINCT CASE WHEN                 TYPE = 'mkp' THEN a.buyer_id END) shp_mkp_buyer_total
  116. ,COUNT(DISTINCT CASE WHEN reg2 = 'hn' AND TYPE = 'mkp' THEN a.buyer_id END) shp_mkp_buyer_hn
  117. ,COUNT(DISTINCT CASE WHEN reg2 = 'hcm' AND TYPE = 'mkp' THEN a.buyer_id END) shp_mkp_buyer_hcm
  118. ,COUNT(DISTINCT CASE WHEN reg2 = '1 north' AND TYPE = 'mkp' THEN a.buyer_id END) shp_mkp_buyer_north
  119. ,COUNT(DISTINCT CASE WHEN reg2 = '2 central' AND TYPE = 'mkp' THEN a.buyer_id END) shp_mkp_buyer_central
  120. ,COUNT(DISTINCT CASE WHEN reg2 = '3 south' AND TYPE = 'mkp' THEN a.buyer_id END) shp_mkp_buyer_south
  121. ,COUNT(DISTINCT CASE WHEN reg2 = '' AND TYPE = 'mkp' THEN a.buyer_id END) shp_mkp_buyer_blank
  122.  
  123. FROM
  124. a
  125. LEFT JOIN dim_user u ON a.buyer_id = u.user_id
  126. WHERE 1=1
  127. AND DATE(a.grass_date) >= CURRENT_DATE - INTERVAL '2' MONTH
  128. GROUP BY 1
Advertisement
Add Comment
Please, Sign In to add comment