1

ROW_NUMBER()... をエイリアスとして設定しようとしているので、OFFSET で参照できます。例えばOFFSET some_alias - 1。大きなクエリから ROW_NUMBER() を含む単一の行を取得する必要があります。これが私の作業コードです(正しいROW_NUMBER()を取得しますが、正しい量だけオフセットされていません):

WITH FirstQuery AS (
    SELECT "RepInitials", COUNT("OrderStatus"), ROW_NUMBER()OVER(ORDER BY COUNT("OrderStatus") DESC)
    FROM "tblBulkSalesQuery"
    WHERE "OrderStatus" = 'CMC'
    GROUP BY "RepInitials"
)
SELECT "RepInitials", COUNT("OrderStatus"), ROW_NUMBER()OVER(ORDER BY COUNT("OrderStatus") DESC)
    FROM "tblBulkSalesQuery"
    WHERE "OrderStatus" = 'CMC'
    GROUP BY "RepInitials"
    LIMIT 1
    OFFSET 1;
4

1 に答える 1

2
select *
from (
    SELECT "RepInitials", 
           COUNT("OrderStatus") as order_status_count, 
           ROW_NUMBER() OVER (ORDER BY COUNT("OrderStatus") DESC) as rn
    FROM "tblBulkSalesQuery"
    WHERE "OrderStatus" = 'CMC'
    GROUP BY "RepInitials"
) as t
where rn = 1

編集

これtは、ネストされた選択 (「派生テーブル」) のエイリアスです。PostgreSQL では、各派生テーブルが独自の「名前」を取得する必要があり、エイリアスを割り当てることによってのみ実行できます。

以下とほとんど同じです。

with t as (
  ... here goes the real select ...
)
select *
from t 
where rn = 1;
于 2012-11-26T14:00:59.740 に答える