Điều này giải đáp phiên bản gốc của vấn đề.
Có vẻ như bạn muốn so sánh tổng số sau khi tổng hợp bảng 2 và bảng 3. Tôi không biết table1
là gì là cho. Nó dường như không làm được gì cả.
Vì vậy:
select *
from (select partner_id, sum(quantity) as sum_quantity
from (select tdsl.*,
row_number() over (partition by t2.partner_id order by order_date) as seqnum
from trip_delivery_sales_lines tdsl
) tdsl
where seqnum <= 2
group by tdsl.partner_id
) tdsl left join
(select cl.partner_id, count(*) as leaf_cnt
from coupon_leaf cl
group by cl.partner_id
) cl
on cl.partner_id = tdsl.partner_id
where leaf_cnt is null or sum_quantity > leaf_cnt