EFRM fraud users (ER Monthly)
Wed Apr 30 2025 10:38:06 GMT+0000 (Coordinated Universal Time)
Saved by @shubhangi.b
/* Daily ER append for EFRM fraud users */ SELECT DISTINCT SUBSTR(CAST(txn_date_switch AS VARCHAR(30)), 1, 7) AS txn_year_month, payer_vpa_switch, 'NA' AS reporting_date, ingestion_date, 'EFRM' AS source FROM ( SELECT txn_id AS upi_txn_id, DATE(MIN(dl_last_updated)) AS ingestion_date, CAST(REGEXP_REPLACE(txn_amount, ',', '') AS DOUBLE) AS txn_amount FROM frauds.efrm_data_snapshot_v3 WHERE DATE(dl_last_updated) >= DATE_TRUNC('MONTH', CURRENT_DATE - INTERVAL '1 MONTH') AND DATE(dl_last_updated) < DATE_TRUNC('MONTH', CURRENT_DATE) GROUP BY 1, 3 ) AS a INNER JOIN ( SELECT DISTINCT DATE(b.created_on) AS txn_date_switch, a.txn_id AS upi_txn_id_switch, a.vpa AS payer_vpa_switch, b.vpa AS payee_vpa_switch, CAST(a.amount AS DOUBLE) AS txn_amount_switch, a.mcc AS payer_mcc_switch, b.mcc AS payee_mcc_switch, a.handle AS payer_handle, b.handle AS payee_handle, a.scope_cust_id, a.mobile_no AS payer_mobile_no, ( CASE WHEN ( LOWER(b.vpa) LIKE '%@paytm%' OR LOWER(b.vpa) LIKE '%@pt%' ) THEN 'paytm merchant/bene' ELSE 'others' END ) AS merchant_bene_type FROM switch.txn_participants_snapshot_v3 AS a INNER JOIN switch.txn_participants_snapshot_v3 AS b ON a.txn_id = b.txn_id WHERE DATE(a.dl_last_updated) >= DATE(CURRENT_DATE - INTERVAL '90' DAY) AND DATE(b.dl_last_updated) >= DATE(CURRENT_DATE - INTERVAL '90' DAY) AND DATE(a.created_on) >= DATE(CURRENT_DATE - INTERVAL '90' DAY) AND a.participant_type IN ('PAYER') AND b.participant_type IN ('PAYEE') AND ( LOWER(a.vpa) LIKE '%@paytm%' OR LOWER(a.vpa) LIKE '%@pt%' ) ) AS c ON a.upi_txn_id = c.upi_txn_id_switch AND a.txn_amount = c.txn_amount_switch AND C.txn_date_switch < a.ingestion_date INNER JOIN ( SELECT DISTINCT txn_id, category, CAST(amount AS DOUBLE) AS amount, DATE(created_on) AS created_on FROM switch.txn_info_snapshot_v3 WHERE dl_last_updated >= DATE(CURRENT_DATE - INTERVAL '90' DAY) AND created_on >= DATE(CURRENT_DATE - INTERVAL '90' DAY) AND UPPER(status) IN ('SUCCESS') ) AS e ON a.upi_txn_id = e.txn_id AND a.txn_amount = e.amount AND e.created_on < a.ingestion_date
Comments