thongthongthong

Untitled

Dec 15th, 2021 (edited)
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.30 KB | None | 0 0
  1. WITH
  2. order_tab_union AS (
  3.         SELECT
  4.             tb1.uid,
  5.             tb1.order_id,
  6.             tb1.topup_payable_amount/1000000 AS amount,
  7.             tb1.payment_payable_amount/1000000 AS payment_payable_amount,
  8.             tb1.payment_cash_amount/1000000 AS cashback,
  9.             tb1.currency_amount/1000000 currency_amount,
  10.             tb1.topup_coins_amount/1000000 topup_coins_amount,
  11.             tb1.payment_coins_num/1000000 payment_coins_num,
  12.             tb1.payment_channel_id,
  13.             tb1.topup_channel_id,
  14.             tb1.caller,
  15.             tb1.extra_data,
  16.             tb1.item_id,
  17.             json_extract_scalar(tb1.extra_data,'$.payment.__private__.partner.partner_reference_mct') mct,
  18.             tb1.STATUS,
  19.             tb1.memo,
  20.             tb1.TYPE,
  21.             tb1.valid_time,
  22.             ex.exchange_rate
  23.         FROM shopeepay.airpay_payment_txn_vn_db__txn_order_tab_union__reg_daily_s0_live tb1
  24.         LEFT JOIN mp_order.dim_exchange_rate__reg_s0_live ex ON DATE(from_unixtime(tb1.valid_time-3600)) = ex.grass_date AND grass_region = 'VN'
  25.     )
  26.  
  27. ,a AS (
  28. SELECT
  29. wpa.partner_account_id shp_user_id
  30. ,COUNT(DISTINCT CASE WHEN tb1.payment_channel_id IN (21003,21004,21005,21006,21008,21009,21011) AND amount >= 100000 THEN tb1.order_id END) topup_txn
  31. ,COUNT(DISTINCT CASE WHEN tb1.payment_channel_id IN (21002) /*OR re.order_id IS NOT NULL*/ THEN tb1.order_id END) withdraw_txn
  32.  
  33. FROM order_tab_union tb1
  34. -- left join airpay_vn.airpay_payment_txn_stats_vn_db__order_extra_tab tb2 on tb1.order_id= tb2.order_id
  35. LEFT JOIN shopeepay.airpay_payment_common_vn_db__channel_tab__vn_daily_s0_live c ON tb1.payment_channel_id = c.channel_id
  36. LEFT JOIN (SELECT channel_id, max_by(code, id) code FROM shopeepay.airpay_payment_common_vn_db__product_code_tab__vn_daily_s0_live GROUP BY 1) pc_i ON c.channel_id = pc_i.channel_id
  37. LEFT JOIN (SELECT channel_type, max_by(code, id) code FROM shopeepay.airpay_payment_common_vn_db__product_code_tab__vn_daily_s0_live GROUP BY 1) pc_t ON c.TYPE = pc_t.channel_type
  38. LEFT JOIN
  39. (
  40. SELECT
  41. uid, max_by(partner_account_id, update_time) partner_account_id --shopee user_id
  42. FROM shopeepay.airpay_user_service_vn_db__wallet_partner_account_tab__vn_daily_s0_live
  43. WHERE unlink_time = 0
  44. GROUP BY 1
  45. ) wpa ON wpa.uid = tb1.uid
  46. INNER JOIN
  47. (SELECT DISTINCT uid FROM shopeepay.airpay_user_service_vn_db__user_kyc_info_log_tab__vn_daily_s0_live) kyc ON tb1.uid = kyc.uid
  48. INNER JOIN
  49. (SELECT DISTINCT uid FROM shopeepay.airpay_is_card_center_vn_db__bank_account_tab__vn_daily_s0_live WHERE flag IN (1, 257) AND channel_id != 10004) g ON g.uid = tb1.uid
  50. -- LEFT JOIN dev_vnapbi_general.spp_withdraw_remittance re ON tb1.order_id = re.order_id
  51.  
  52. WHERE 1=1
  53. AND DATE(from_unixtime(valid_time-3600)) BETWEEN DATE '2022-05-01' AND DATE '2022-05-04'
  54. AND tb1.TYPE NOT IN (16, 19)
  55. AND tb1.STATUS = 8
  56. AND tb1.memo <> 'test'
  57. AND tb1.topup_channel_id NOT IN (11100,13002,13003,13004,13009,13010,13011,13103)
  58. AND tb1.payment_channel_id IN (21003,21004,21005,21006,21008,21009,21011,       21002)
  59. AND (regexp_like(json_extract_scalar(tb1.extra_data, '$.payment.transfer.purpose'), 'CashBack###Tien thuong het han') = FALSE --exclude clawback P2P
  60. OR
  61. json_extract_scalar(tb1.extra_data, '$.payment.transfer.purpose') IS NULL)
  62.  
  63. GROUP BY 1
  64. )
  65. SELECT * FROM a WHERE topup_txn >= 5 LIMIT 200
Advertisement
Add Comment
Please, Sign In to add comment