sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres:få min og max rækker tæller i mange til mange relationstabeller

Sammenlign leverandørens beløb med min og maks fra en vinduesfunktion, og kør en betinget optælling på ydre forespørgselsniveau:

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 Fiddle.




  1. Filnavn i WHERE-sætningen i Mysql returnerer intet

  2. Tomcat JDBC Conencton Pool + MySQL giver Broken pipe-problemer, selv med forbindelsesvalidering

  3. MySQL:Du har en fejl i din SQL-syntaks... nær 'desc) VALUES ('Idea','Description')'

  4. Valgfri INSERT-sætning i transaktionskæden ved hjælp af NodeJS og Postgres