PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgresSql:Porównywanie dwóch tabel i uzyskanie wyniku oraz porównanie z trzecią tabelą

To odpowiada na pierwotną wersję problemu.

Wygląda na to, że chcesz porównać sumy po agregacji tabel 2 i 3. Nie wiem, co table1 jest dla. Wydaje się, że nic nie robi.

A więc:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL — funkcja ze zmiennymi lokalnymi — odwołanie do kolumny jest niejednoznaczne

  2. Dlaczego Postgres nie korzysta z indeksu?

  3. plpgsql - używanie dynamicznej nazwy tabeli w deklaracji deklaracji

  4. Blokada wiersza bazy danych podczas wielu transakcji

  5. Dynamiczny wybór schematu PostgreSQL w czasie wykonywania w jOOQ