у меня есть следующий запрос, который приносит для каждого party_id все связанные с business_party_id, их ежемесячное накопленное значение для каждого BP и ранг для этого значения. существует специальный business_party_id = 200, который, если у данного party_id имеется более 1 связанной business_party и что business_party_ занимает 1 место, а равен 200, тогда не должен учитываться, и ранг 2 для этого party_id должен рассматриваться как уровень 1 и перемещать 200 до уровня 2.
как я могу это сделать?
вот мой запрос
select party_id,
business_party_id,
monthly_accum_event_amt,
Row_number() OVER (PARTITION BY party_id ORDER BY monthly_accum_event_amt desc) orden
from (
select * from P_DMT_VIEWS.BUSINESS_AGREEMENT_PAYROLL
where LAST_DAY( payroll_dt) = '2018-05-31'
and not business_payrroll_concept_val in ('SUE004','SUE005','SUE00A')
and monthly_event_qty<>0
QUALIFY Row_number() OVER (PARTITION BY business_party_id,party_id ORDER BY monthly_event_qty desc ) =1) a