次の SQL クエリを実行すると:
select yr,
mn,
"%ind",
sum("%ind") OVER (order BY yr,mn) as "Sum%"
from table2
order by yr, mn;
結果は次のとおりです。
yr | mn | %ind | Sum%
------+----+--------------------+------------------
1996 | 2 | 18.1818181818182 | 18.1818181818182
1996 | 2 | 9.09090909090909 | 81.8181818181818
1996 | 2 | 9.09090909090909 | 90.9090909090909
1996 | 2 | 9.09090909090909 | 100
1996 | 3 | 12.1951219512195 | 112.19512195122
1996 | 3 | 31.0975609756098 | 143.292682926829
1996 | 3 | 0.609756097560976 | 199.390243902439
1996 | 3 | 0.609756097560976 | 200
1996 | 4 | 4.8780487804878 | 204.878048780488
1996 | 4 | 24.390243902439 | 268.29268292683
1996 | 4 | 14.6341463414634 | 298.780487804878
1996 | 4 | 1.21951219512195 | 300
私がやろうとしているのは、特定の月、たとえば 1996-3 に対応する列 %ind の各行を追加することであるため、これは問題です。さらに、月が変わるとすぐに、0 から 100% までの追加を再開したいと考えています。したがって、理想的なテーブルは次のようになります。
yr | mn | %ind | Sum%
------+----+--------------------+------------------
1996 | 2 | 18.1818181818182 | 18.1818181818182
1996 | 2 | 9.09090909090909 | 81.8181818181818
1996 | 2 | 9.09090909090909 | 90.9090909090909
1996 | 2 | 9.09090909090909 | 100
1996 | 3 | 12.1951219512195 | 12.19512195122
1996 | 3 | 14.0243902439024 | 86.585365853659
1996 | 3 | 0.609756097560976 | 99.390243902439
1996 | 3 | 0.609756097560976 | 100
1996 | 4 | 4.8780487804878 | 4.878048780488
1996 | 4 | 15.8536585365854 | 84.146341463415
1996 | 4 | 14.6341463414634 | 98.780487804878
1996 | 4 | 1.21951219512195 | 100
SQL クエリに何が欠けていますか?