Oracle
 sql >> Base de données >  >> RDS >> Oracle

besoin de regrouper les enregistrements en fonction des annulations correspondantes

Je pense que c'est juste row_number() et agrégation :

select listagg(row_number, ',') within group (order by row_number) as row_numbers,
       loan_id, txn_entry_api_name, sum(txn_amt) as txn_amt,
       listagg(txn_entry_api_name, ',') within group (order by row_number) as txn_entry_api_name
from (select t.*,
             row_number() over (partition by loan_id, txn_entry_api_name, abs(txn_amt) order by row_number) as seqnum
      from t
     ) t
group by seqnum;