2014-02-21 3 views
0

아래 쿼리에서 product_id 필드에 파티션을 사용하려고하고 week_end 날짜까지 주문하려고합니다. 내 질문은 특정 열에 의해 파티션을 나누기 위해 어떤 함수를 사용하거나 순위 지정()하거나 일부 집계 함수를 사용해야하는 것입니다. 왜냐하면 rank() 함수를 사용하지 않으면 아래 쿼리가 실패하기 때문에 출력에 순위가 필요하지 않습니다. 집계 함수를 피하고 파티션을 사용하는 방법이 있습니까? 감사!우체통의 창 파티션

select c.week_end,a.product_id,b.metric_id,c."week_value",c."13week_value",c."52week_value",rank() over(partition by a.product_id order by c.week_end) from 
    Product_t a,metric_t b, vin_example_unpivot c where 
    c.prod_nm = a.product_nm and 
    c."Metric" = b.metric_code 
+0

분석 기능의 분할 영역은 다시 시작할 때 창 기능 (사례의 순위)을 알려주기 때문에 실패합니다. 창 함수가 없으면 존재하지 않는 무언가에 대해 지시를 내리는 것이지 이해가되지 않습니다. 너 뭐하려고? –

+0

"product_id로 나누고 일주일에 주문 하시겠습니까?" 샘플 데이터와 원하는 결과를 제공 할 수 있습니까? –

답변

0

결과를 제품 ID와 종료 날짜별로 정렬 하시겠습니까?

select c.week_end, a.product_id, b.metric_id, c."week_value", c."13week_value", c."52week_value" 
from vin_example_unpivot c join 
    Product_t a 
    on c.prod_nm = a.product_nm join 
    metric_t b 
    on c."Metric" = b.metric_code 
order by product_id, week_end; 

올바른 조인 구문을 사용하도록 조인을 수정했습니다.

관련 문제