集約と選択リスト内のリテラル式 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/tpt1555966086716.ditamap
dita:ditavalPath
ja-JP/tpt1555966086716.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

オプションで、選択リスト内のリテラル式を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             ?