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
日本語 (日本)

ウィンドウ集約関数の結果のデータ型と書式は以下のとおりです。

関数 結果のタイプ 書式
AVG(x)

xが文字型の場合

FLOAT FLOATのデフォルト書式
AVG(x)

xが数値、DATE、またはINTERVAL型の場合

FLOAT オペランドxと同じ書式
  • CORR(x,y)
  • COVAR_POP(x,y)
  • COVAR_SAMP(x,y)
  • REGR_AVGX( y,x)
  • REGR_AVGY( y,x)
  • REGR_INTERCEPT(x,y)
  • REGR_R2(x,y)
  • REGR_SLOPE(x,y)
  • REGR_SXX(x,y)
  • REGR_SXY(x,y)
  • REGR_SYY(x,y)
  • STDDEV_POP(x,)
  • STDDEV_SAMP(x,)
  • VAR_POP(x,)
  • VAR_SAMP(x)

xが文字型の場合

FLOAT FLOATのデフォルト書式
  • CORR(x,y)
  • COVAR_POP(x,y)
  • COVAR_SAMP(x,y)
  • REGR_AVGX (y,x)
  • REGR_AVGY( y,x)
  • REGR_INTERCEPT(x,y)
  • REGR_R2(x,y)
  • REGR_SLOPE(x,y)
  • REGR_SXX(x,y)
  • REGR_SXY(x,y)
  • REGR_SYY(x,y)
  • STDDEV_POP(x)
  • STDDEV_SAMP(x)
  • VAR_POP(x)
  • VAR_SAMP(x)
xが以下のいずれかの型の場合
  • Numeric
  • DATE
  • Interval
オペランドxと同じデータ型 オペランドxのデータ型のデフォルトの書式
REGR_AVGX(y,x)

REGR_AVGY(y, x)

xはUDT

  UDTの暗黙キャスト先のデータ型のデフォルト書式。
COUNT(x)

COUNT(*)

REGR_COUNT(x ,y)

トランザクション モードがANSIの場合

DBSControl内のMaxDecimalの値
  • 0または15。結果タイプはDECIMAL(15,0)、書式は-(15)9。
  • 18。結果タイプはDECIMAL(18,0)、書式は-(18)9。
  • 38。結果タイプはDECIMAL(38,0)、書式は-(38)9。

テーブルでは、INTEGERの範囲を超えることがあるので、ANSI トランザクション モードでは、DECIMALが使用されます。

COUNT(x)

COUNT(*)

REGR_COUNT(x,y)

トランザクション モードが Teradataの場合

INTEGER

Teradata トランザクション モードでは、退行問題を避けるために、INTEGERが使用されます。

COUNTウィンドウ集約関数の最終結果はキャストできます。ただし、COUNT集約関数のようにウィンドウ関数の計算の一部としてキャストが使用されることはありません。そのため、計算中に発生するおそれのある数値のオーバーフロー エラーを回避するためにキャストを使用することはできません。
INTEGERのデフォルト書式
MAX(x), MIN(x) オペランドxと同じデータ型 オペランドxと同じ書式
SUM(x)

xが文字型の場合

オペランドxと同じ。 FLOATのデフォルト書式
SUM(x)

xがDECIMAL(n,m)型の場合

DECIMAL(p,m)、このときpは次のルールに従って決定されます。
DBSControl内のMaxDecimalが0または15である場合
  • n  ≤  15の場合、p = 15。
  • 15 < n  ≤  18の場合、p = 18。
  • n > 18の場合、p = 38。
DBSCControl内のMaxDecimalが18である場合
  • n  ≤  18の場合、p = 18。
  • n > 18の場合、p = 38。

DBSControlのMaxDecimalが38でnが任意の値である場合、p = 38。

DECIMALのデフォルト書式
SUM(x)

xがDECIMAL以外の数値型の場合

オペランドxと同じ。 オペランドのデータ型のデフォルトの書式