以下の問合わせは、すべての都市の肉の売上げの残存合計を戻します。SUM関数にPARTITION BY句がないため、残存合計にすべての都市が含まれることに注意する必要があります。
SELECT city, kind, sales, SUM(sales) OVER (ORDER BY city, kind ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING) FROM monthly;
上記のSELECT文の結果は、例えば以下のようなテーブルになります。
city kind sales Remaining Sum(sales) ------- ------------- ------- -------------------- Omaha variety pack 25 ? Omaha pure pork 125 25 Omaha pure pork 25 150 Omaha pure pork 45 175 Chicago variety pack 55 220 Chicago variety pack 25 275 Chicago variety pack 45 300 Chicago pure pork 50 345
計算の並替え順序は、まずcity単位でアルファベット順、そしてkind単位でアルファベット順であることに注意してください。しかし結果は、その逆の順序で表示されます。
ウィンドウ指定で指定する並替え順序によって関数の適用対象の行の並替え順序が定義されますが、それによって結果の順序が定義されるわけではありません。結果を順序付けするには、SELECT文でORDER BY句を使用します。
例:
SELECT city, kind, sales, SUM(sales) OVER (ORDER BY city, kind ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING) FROM monthly ORDER BY city, kind;
上記のSELECT文の結果は、例えば以下のようなテーブルになります。
city kind sales Remaining Sum(sales) ------- ------------- ------- -------------------- Chicago pure pork 50 345 Chicago variety pack 55 265 Chicago variety pack 25 320 Chicago variety pack 45 220 Omaha pure pork 25 70 Omaha pure pork 125 95 Omaha pure pork 45 25 Omaha variety pack 25 ?
計算対象 | 使用する関数 |
---|---|
累積合計 |
|
累計、グループ、または移動カウント | COUNTウィンドウ関数 |
グループ合計 | SUMウィンドウ関数 |
移動平均 |
|
現在の行列値と、それに先行するn番目の行列値との間の移動差分 | MDIFF |
移動線形回帰 | MLINREG |
移動合計 |
|
列の値の分位スコア | QUANTILE |
グループ内のすべての行の順序付き順位 |
|
グループ内の行の相対的な順位 | PERCENT_RANKウィンドウ関数 |
ウィンドウのウィンドウ順序に基づく、そのウィンドウ パーティション内の行の順次行番号 | ROW_NUMBER |
累計、グループ、または移動最大値 | MAXウィンドウ関数 |
累計、グループ、または移動最小値 | MINウィンドウ関数 |