PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres:Erhalten Sie die Anzahl der minimalen und maximalen Zeilen in einer Beziehungstabelle von vielen zu vielen

Vergleichen Sie den Betrag des Verkäufers mit dem Minimum und dem Maximum aus einer Fensterfunktion und führen Sie eine bedingte Zählung auf der Ebene der äußeren Abfrage durch:

SELECT vendor_id
     , count(min_bid OR NULL) AS min_bid_count
     , count(max_bid OR NULL) AS max_bid_count
FROM  (
   SELECT vendor_id
        , amount = min(amount) OVER w AS min_bid
        , amount = max(amount) OVER w AS max_bid
   FROM   rfq_vendor_mapping
   WINDOW w AS (PARTITION BY rfq_id)
   ) sub
GROUP  BY 1
ORDER  BY 1;

SQL-Geige.