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

オプションで、選択リスト内のリテラル式をGROUP BY句に入れることもできます。例えば、以下の文では集約関数と選択リストに含まれるリテラル式を使用していますが、GROUP BY句を使用していません。

   SELECT COUNT(*), 
   SUBSTRING( CAST( CURRENT_TIME(0) AS CHAR(14) ) FROM 1 FOR 8 )
   FROM Sales_Table;

テーブルに行がない場合、このような文の結果は、リテラル式のタイプに応じて異なります。

リテラル式 問合わせ結果内のリテラル式の結果
列参照が含まれていない場合

確定的な関数ではない場合(RANDOMなど)

リテラル式の値。

RANDOMなどの関数は、集約ステップではなく、リクエストの即時検索ステップで計算されます。

例を挙げます。

SELECT COUNT(*),

SUBSTRING(CAST(CURRENT_TIME(0) AS CHAR(14))

FROM 1 FOR 8)

FROM Sales_Table;

Count(*) Substring(Current Time(0) From 1 For 8)

-------- ---------------------------------------

0 09:01:43

列参照が含まれている場合

UDFの場合

NULL。

例を挙げます。

SELECT COUNT(*), UDF_CALC(1,2)

FROM Sales_Table;

Count(*) UDF_CALC(1,2)

----------- -------------

0             ?