ONUS : Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck
Fri May 30 2025 05:46:04 GMT+0000 (Coordinated Universal Time)
Saved by @shubhangi.b
-- Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck
DROP TABLE team_kingkong.onus_Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck_breaches;
-- CREATE TABLE team_kingkong.onus_Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck_breaches AS
INSERT INTO team_kingkong.onus_Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck_breaches
with onus_txn_base as
(SELECT DISTINCT A.*, case when m1.mid is not null then category else 'Others' end as business_category FROM
(select userid, transactionid AS txn_id,
cast(eventAmount as double) / 100 as txn_amount,
dateinserted as txn_date,
substr(cast(dateinserted as varchar(30)), 1, 7) as yearMonth,
paymethod, paytmmerchantid, responsestatus, actionrecommended, velocitytimestamp
FROM cdp_risk_transform.maquette_flattened_onus_snapshot_v3
WHERE DATE(dl_last_updated) BETWEEN DATE(DATE'2025-01-01' - INTERVAL '30' DAY) AND DATE'2025-01-31'
AND SOURCE = 'PG'
AND responsestatus IN ('SUCCESS') AND actionrecommended <> 'BLOCK'
AND paytmmerchantid IN ('PTMFVT32998068120662') AND paymethod IN ('DEBIT_CARD', 'CREDIT_CARD')
AND eventid IN (SELECT eventlinkid
FROM risk_maquette_data_async.pplus_payment_result_prod_async_snapshot_v3
WHERE dl_last_updated BETWEEN DATE(DATE'2025-01-01' - INTERVAL '30' DAY) AND DATE'2025-01-31'
AND payresult = 'payment_success')) a
left join
(select * from team_kingkong.voc_mid_categorization where mid != '') m1
on a.paytmmerchantid = m1.mid)
SELECT *, CASE
WHEN (txn_amount + week_txn_amount) >= week_threshold
OR (txn_amount + month_txn_amount) >= month_threshold
THEN CONCAT_WS(
', ',
CASE WHEN (txn_amount + week_txn_amount) >= week_threshold THEN 'weekly_txn_limit_breached' END,
CASE WHEN (txn_amount + month_txn_amount) >= month_threshold THEN 'monthly_txn_limit_breached' END)
ELSE NULL END AS breach_reason FROM
(SELECT A.*
-- No.of attempted txns last 7 days > 20 (consider only the CCBP transactions)
, SUM(IF(DATE(B.txn_date) BETWEEN DATE(DATE(A.txn_date) - INTERVAL '7' DAY) AND DATE(A.txn_date), B.txn_amount, NULL)) AS week_txn_amount
, 25295 AS week_threshold
-- No.of attempted txns per calendar month > 30 (consider only the CCBP transactions)
, SUM(IF(DATE(B.txn_date) BETWEEN date_trunc('month', DATE(A.txn_date)) AND DATE(A.txn_date), B.txn_amount, NULL)) AS month_txn_amount
, 50590 AS month_threshold
FROM
(SELECT * FROM onus_txn_base
WHERE DATE(txn_date) BETWEEN DATE'2025-01-01' AND DATE'2025-01-31')A
INNER JOIN
(SELECT * FROM onus_txn_base)B
ON A.userid = B.userid AND A.txn_id <> B.txn_id AND B.velocitytimestamp < A.velocitytimestamp
AND DATE(B.txn_date) BETWEEN DATE(A.txn_date - INTERVAL '30' DAY) AND DATE(A.txn_date)
GROUP BY 1,2,3,4,5,6,7,8,9,10,11)
WHERE ((txn_amount + week_txn_amount) >= week_threshold) OR ((txn_amount + month_txn_amount) >= month_threshold);



Comments