2012-11-26 3 views
1

ROW_NUMBER() ...을 별칭으로 설정하려고하고 있으므로 이것을 OFFSET에서 참조 할 수 있습니다. 예 : OFFSET some_alias - 1. 큰 쿼리에서 ROW_NUMBER()를 포함하여 단일 행을 가져와야합니다. 여기 내 작업 코드()의 올바른 ROW_NUMBER을 (얻을 수 있지만, 적당한 양에 의해 상쇄되지 않음) :PostgreSQL - 앨리어스에 윈도우 함수 할당

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; 

답변

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; 
+0

:

그것은 거의 동일합니다. SQL에 대해 더 많이 배우기 시작해야합니다. 빠른 답변을 보내 주셔서 감사합니다. :) – ktross

+0

당신의 대답은 완벽하게 작동했습니다. 그러나 제게 뭔가를 명확하게 해주시겠습니까? 에서 't'는 무엇을 의미합니까? – ktross

+1

@ktross : 내 편집 참조. –