WALLET WITHDRAWAL BANK: x DAYS AFTER TOPUP

PHOTO EMBED

Wed Nov 30 2022 08:37:07 GMT+0000 (Coordinated Universal Time)

Saved by @shubhangi_burle

SELECT '2022' AS year, monthNo, 'FULL' as kyc, Z.risk_catg, 'Custom' as Frequency, COUNT(DISTINCT IF(Z.gap <= Z.limit, Z.txn_id, NULL)) AS breaches, 'WalletWithdrawalTxnAfterTopup' as rule FROM
    (SELECT month(A.txnTime) AS monthNo, A.senderuserid, A.txn_id, B.txn_id as txn_id2, ((UNIX_TIMESTAMP(A.txnTime) - UNIX_TIMESTAMP(B.txnTime))/86400) as gap,
    IF(C.hml_category IS NOT NULL, C.hml_category, 'LOW RISK') AS risk_catg,
    CASE WHEN C.hml_category = 'HIGH RISK' THEN 7 WHEN C.hml_category = 'MEDIUM RISK' THEN 5 ELSE 3 END AS limit FROM
        (SELECT DISTINCT senderuserid, transaction_id as txn_id, transaction_time as txnTime
        FROM fraud.transaction_details_v3 
        WHERE year(updated_date) = 2022
        AND backend_errorcode = 'SUCCESS' AND errorcode = 'SUCCESS' AND pay_transaction_status = 'COMPLETED'
        AND workflowtype = 'WALLET_WITHDRAWAL' AND transfermode = 'ACCOUNT_WITHDRAWAL_CLOSURE' AND wallet_flag = true)A
    INNER JOIN
        (SELECT DISTINCT senderuserid, transaction_id AS txn_id, transaction_time AS txnTime
        from fraud.transaction_details_v3     
        where year(updated_date) = 2022
        and sendertype = 'INTERNAL_USER' AND workflowtype = 'CONSUMER_TO_MERCHANT'
        and pay_transaction_status = 'COMPLETED' AND errorcode = 'SUCCESS'
        and receiveruser in ('PHONEPEWALLETTOPUP','NEXUSWALLETTOPUP'))B
    ON A.senderuserid = B.senderuserid AND ((UNIX_TIMESTAMP(A.txnTime) - UNIX_TIMESTAMP(B.txnTime))/86400) BETWEEN 0 AND 7
    LEFT JOIN
        (SELECT DISTINCT senderuserid, hml_category FROM fraud.hml_classification)C
    ON A.senderuserid = C.senderuserid
    INNER JOIN
        (SELECT DISTINCT user_ext_id FROM users.users WHERE kyc NOT IN ('MIN_KYC', 'MIN_KYC_V2'))D
    ON A.senderuserid = D.user_ext_id)Z
GROUP BY Z.risk_catg, Z.monthNo
content_copyCOPY