Níže uvedený SQL by měl stačit a být snadno čitelný a pochopitelný:
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;
Pokud potřebujete další vysvětlení, neváhejte se mě zeptat.
Ted.