sql >> データベース >  >> RDS >> PostgreSQL

Postgres:多対多のリレーションテーブルで最小行数と最大行数を取得します

    ベンダーの金額をウィンドウ関数の最小値および最大値と比較し、外部クエリレベルで条件付きカウントを実行します。

    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フィドル。




    1. Oracle SQL Group By if

    2. IBMSPSSでのODBCデータの分析

    3. MySQLトリガー:挿入時にauto_increment値を別の列にコピーします

    4. whileループSQL Server 2008で一時テーブルの行数を使用する