2016-08-28 2 views
0

창을 사용할 때 현재 파티션의 크기 (행 수)는 어떻게 얻을 수 있습니까?PostgreSQL에서 파티션 (창)의 크기를 얻는 방법은 무엇입니까?

예를 들어 블로그의 게시물에 대한 설명이있는 테이블이 있다고 가정 해 보겠습니다. 각 게시물에 대해 첫 번째 의견, 두 번째 의견, 마지막 의견 및 의견 수 (게시물별로 그룹화하고 COUNT(*)을 수행하는 다른 하위 쿼리를 사용하지 않고)에 대해 알고 싶습니다.

SELECT DISTINCT 
    post_id. 
    first_value(comment_text) OVER wnd AS first_comment, 
    nth_value(comment_text, 2) OVER wnd AS second_comment, 
    last_value(comment_text) OVER wnd AS last_comment, 
    SOME_FUNCTION(comment_text) OVER wnd AS number_of_comments 
FROM comments 
WINDOW wnd AS (
    PARTITION BY post_id 
    ORDER BY comment_created_at ASC 
    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 
); 

SOME_FUNCTION 무엇을해야 :

쿼리는 같은 모양해야합니까?

답변

1

귀하의 질문에, 당신은 당신이 창문과 함께 그것을 사용할 수 있다는 것을 알게되면 : COUNT(*) OVER wnd AS number_of_comments 일을 할 것입니다.

+0

어, 질문을 쓰는 것이 저에게 (거의) 대답을 가져다 준 사례 중 하나라고 생각합니다. 고맙습니다. – OferBr