集約と選択リスト内のリテラル式 - Teradata Database - Teradata Vantage NewSQL Engine - 集約関数の概要、選択リストの集計およびリテラル式。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
ft:locale
ja-JP
ft:lastEdition
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.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             ?