2016-08-28 5 views
0

ウィンドウを使用すると、現在のパーティションのサイズ(行数)はどのように取得できますか?PostgreSQLのパーティション(ウィンドウ)のサイズを取得するには?

たとえば、ブログ内の投稿のコメントを保持するテーブルがあるとします。最初のコメント、2番目のコメント、最後のコメント、コメント数を知ることができます(投稿ごとにグループ化し、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

あなたの質問には、Windowsでそれを使うことができるとわかったらすぐにあります。COUNT(*) OVER wnd AS number_of_commentsは仕事をします。

+0

こんにちは、質問を書いただけで私は(ほとんど)答えに繋がったのです。ありがとうございました。 – OferBr

関連する問題