17.10 - 例: 残存合計 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-171K-JPN
Language
日本語 (日本)

以下の問合わせは、すべての都市の肉の売上げの残存合計を戻します。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       ?
計算対象 使用する関数
累積合計
  • SUMウィンドウ関数
  • CSUM
累計、グループ、または移動カウント COUNTウィンドウ関数
グループ合計 SUMウィンドウ関数
移動平均
  • AVGウィンドウ関数
  • MAVG
現在の行列値と、それに先行するn番目の行列値との間の移動差分 MDIFF
移動線形回帰 MLINREG
移動合計
  • SUMウィンドウ関数
  • MSUM
列の値の分位スコア QUANTILE
グループ内のすべての行の順序付き順位
  • RANKウィンドウ関数
  • RANK
グループ内の行の相対的な順位 PERCENT_RANKウィンドウ関数
ウィンドウのウィンドウ順序に基づく、そのウィンドウ パーティション内の行の順次行番号 ROW_NUMBER
累計、グループ、または移動最大値 MAXウィンドウ関数
累計、グループ、または移動最小値 MINウィンドウ関数