Netezzaの制限付き累積合計

ADJ

次のようなコードを使用して、基本的な定式化で累積合計を使用する方法を知っています。

Table Name: Employees
dept_id salary
-------------
10     1000
10     1000
10     2000
10     3000
20     5000
20     6000
20     NULL

SELECT dept_id,
       salary,
       SUM(salary) OVER(PARTITION BY dept_id 
             ORDER BY salary ASC 
             rows unbounded preceding) cum_sum
FROM   Employees;

dept_id   salary  cum_sum  
--------------------------
10        1000    1000     
10        1000    2000     
10        2000    4000     
10        3000    7000     
20        5000    5000     
20        6000    11000    
20        NULL    11000    

しかし、累積合計を先行するN行のみに制限するにはどうすればよいですか?たとえば、累積合計を現在の行と前の2行に制限します。

dept_id   salary  cum_sum  
--------------------------
10        1000    1000     
10        1000    2000     
10        2000    4000     
10        3000    6000     
20        5000    5000     
20        6000    11000    
20        NULL    11000    
ゴードン・リノフ

SQL構文は次のとおりです。

SELECT dept_id,
       salary,
       SUM(salary) OVER(PARTITION BY dept_id 
             ORDER BY salary ASC 
             rows between <N> preceding and current row) cum_sum
FROM   Employees;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事