Poniższy kod SQL powinien załatwić sprawę i być łatwy do odczytania i zrozumienia:
select t1.lending_id, max(t1.installment_n) - min(t1.installment_n) as count
from table t1
where t1.status = 'WAITING_PAYMENT'
and t1.installment_n >
(SELECT max(t2.installment_n) FROM table t2 where t2.lending_id = t1.lending_id and t2.status = 'PAID')
group by lending_id;
W celu uzyskania dalszych wyjaśnień nie wahaj się mnie zapytać.
Ted.