2017-08-08 2 views
0

日付範囲で日ごとに移動合計を計算します。すなわち、日付よりも大きいかまたは等しいすべての値を合計するが、それは行ごとに行なわれる。私はウィンドウ関数が必要であることを知っていますが、実際の関数の助けが必要です。Postgres SQL:1日以上のIDの合計。連鎖の日毎に計算されます。

**私は行の各日付よりも大きい合計を計算する必要があります。私は

例データ前日から値をカウントしない2017年8月2日にお知らせ:

2017-08-1, 1 
2017-08-2, 5 
2017-08-3, 4 
2017-08-4, 3 
2017-08-5, 2 

望ましい結果:ここで

2017-08-1, 15 
2017-08-2, 14 
2017-08-3, 9 
2017-08-4, 5 
2017-08-5, 2 

は、私は、このデータを生成するために持っているものです。

SELECT DATE_TRUNC('day', created_at), 
    COUNT(*) 
FROM table 
GROUP BY 1 
ORDER BY 1 DESC 

答えて

1

ただ、累積和を使用します。

SELECT DATE_TRUNC('day', created_at), 
     COUNT(*), 
     SUM(COUNT(*)) OVER (ORDER BY DATE_TRUNC('day', created_at) DESC) as sum_greater_than 
FROM table 
GROUP BY 1 
ORDER BY 1 DESC; 
+0

私は自分のオリジナルのポストにコメントを追加しました。私はこの合計を行う必要がありますが、私は各列の手元にある日よりも少ない日数の値を数えないようにする必要があります。ありがとうございます – user2938093

+0

Nvm、これは私が必要なすべてです。ありがとう! – user2938093

関連する問題