Cybercell fraud users (daily ER)

PHOTO EMBED

Wed Apr 30 2025 10:37:11 GMT+0000 (Coordinated Universal Time)

Saved by @shubhangi.b

SELECT DISTINCT substr(cast(txn_date_switch as varchar(30)), 1, 7) as txn_year_month
, payer_vpa_switch
, reporting_date
, ingestion_date
, 'Cybercell' AS source
FROM
  (
    SELECT
      *
    FROM
      (
        SELECT
          DISTINCT transaction_id AS txnid,
          CAST(txn_amount AS DOUBLE) AS txn_amount,
          DATE(reporting_date) AS reporting_date,
          DATE(dl_last_updated) AS ingestion_date,
          ROW_NUMBER() OVER (PARTITION BY transaction_id) AS txn_id_duplicate
        FROM
          frauds.ppsl_cybercell_snapshot_v3
        WHERE
          DATE(dl_last_updated) >= DATE(CURRENT_DATE - INTERVAL '1' DAY)
          AND NOT transaction_id IN ('', ' ', 'NA', 'N.A', '0')
          AND NOT transaction_id IS NULL
      )
    WHERE
      txn_id_duplicate = 1
  ) AS b
  INNER JOIN (
    SELECT
      DISTINCT GET_JSON_OBJECT(
        payresultcontext,
        '$.payMethodResultList[0].extendInfo.payeeVpa'
      ) AS payee_vpa,
      transactionid,
      IF(NOT rrncode IS NULL, rrncode, banktxnid) AS rrn_pg,
      DATE(dl_last_updated) AS dl_last_updated
    FROM
      risk_maquette_data_async.pplus_payment_result_prod_async_snapshot_v3
    WHERE
      DATE(dl_last_updated) >= DATE(CURRENT_DATE - INTERVAL '90' DAY)
      AND DATE(gmt_occur_derived) >= DATE(CURRENT_DATE - INTERVAL '90' DAY)
      AND payresult IN ('payment_success')
      AND UPPER(paymethod) IN ('UPI')
  ) AS c ON b.txnid = c.transactionid
  AND c.dl_last_updated < b.reporting_date
  INNER JOIN (
    SELECT
      *
    FROM
      (
        SELECT
          DISTINCT 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,
          a.amount 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 b.dl_last_updated >= DATE(CURRENT_DATE - INTERVAL '90' DAY)
          AND 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 x
      INNER JOIN (
        SELECT
          DISTINCT txn_id,
          category,
          rrn
        FROM
          switch.txn_info_snapshot_v3
        WHERE
          DATE(dl_last_updated) >= DATE(CURRENT_DATE - INTERVAL '90' DAY)
          AND DATE(created_on) >= DATE(CURRENT_DATE - INTERVAL '90' DAY)
          AND UPPER(status) IN ('SUCCESS')
      ) AS f ON x.upi_txn_id_switch = f.txn_id
  ) AS y ON y.rrn = c.rrn_pg
  AND y.payee_vpa_switch = c.payee_vpa
  AND y.txn_date_switch < b.reporting_date
content_copyCOPY