receiver_external_top5 : no duplicates
Wed Nov 16 2022 10:52:11 GMT+0000 (Coordinated Universal Time)
Saved by @shubhangi_burle
%jdbc(hive)
set tez.queue.name=default;
set hive.execution.engine=tez;
select DATE_SUB('{{next_ds}}',7) starting_date, DATE_SUB('{{next_ds}}',1) ending_date
,d.active_days as active_days
,'weekly' as date_range
,d.identifier as identifier
,'Rcv_External_users_top5' red_flag
,d.value as value
,'INR' comment
,case when e.identifier is null then 'New' else 'Repeat' end as new_or_repeat
,'AML' as `group`
,'FRA' as `type`
,'Alerts' as type_fra
,'User' as issue_type
,'UPI' as sub_issue_type
,'2022-11-11' as run_date from
(
select a.active_days active_days
,a.identifier identifier
,a.value value
from
(
select count(distinct updated_date) active_days
,receiveruser identifier
,sum(totaltransactionamount) Value
from fraud.transaction_details_v3
where updated_date BETWEEN DATE_SUB('2022-11-11',7) AND DATE_SUB('2022-11-11',1)
and errorcode = 'SUCCESS'
and receivertype = 'INTERNAL_USER'
and workflowtype = 'EXTERNAL_TO_CONSUMER'
group by receiveruser
having Value>= 1000000
) a
join
(
select count(distinct updated_date) active_days
,receiveruser identifier
,count(distinct transaction_id) Value
from fraud.transaction_details_v3
where updated_date BETWEEN DATE_SUB('2022-11-11',7) AND DATE_SUB('2022-11-11',1)
and errorcode = 'SUCCESS'
and receivertype = 'INTERNAL_USER'
and workflowtype = 'EXTERNAL_TO_CONSUMER'
group by receiveruser
) b
On a.identifier = b.identifier
join
(
select count(distinct updated_date) active_days
,receiveruser identifier
,count(distinct sender_vpa) Value
from fraud.transaction_details_v3
where updated_date BETWEEN DATE_SUB('2022-11-11',7) AND DATE_SUB('2022-11-11',1)
and errorcode = 'SUCCESS'
and receivertype = 'INTERNAL_USER'
and workflowtype = 'EXTERNAL_TO_CONSUMER'
and totaltransactionamount >= 500
and receivertype is not NULL
group by receiveruser
having Value >= 500) C
On A.identifier = C.identifier
)d
left join
(select DISTINCT identifier from fraud.aml_freshdesk WHERE run_date < '2022-11-11') e
On d.identifier = e.identifier
left join
(select user_ext_id AS identifier
, MAX(updated) as BLdate --
from users.users
where blacklisted = 1 and blacklist_reason = 'SAM'
GROUP BY user_ext_id HAVING BLdate < '2022-11-11'
)f
On d.identifier = f.identifier
left join
(select DISTINCT identifier from fraud.aml_receiverside_temporary) g
On d.identifier = g.identifier
where d.identifier is NOT NULL AND f.identifier is NULL AND g.identifier IS NULL
ORDER BY value DESC LIMIT 5



Comments