17.00 - 17.05 - 例: GROUP BY TIMEとUNION - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - 時系列テーブルと操作の概要

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1208-170K-JPN
Language
日本語 (日本)

次の例は、タイムコードがクエリーごとであると推測したルールを示していますが、今回は、UNIONを使用した場合のルールを示しています。

例: UNIONを使用したGROUP BY TIME

次の例は、UNION内のGROUP BY TIMEクエリーはUSING TIMECODE句を必要としないことを示しています。なぜなら、この具体的な例では各サブクエリーでタイムコードを推測できるからです。

select Q.avrg, Q.md, Q.grp
from
(
 sel avg(temperature) as avrg, mode(temperature) as md, 1 as grp
 from OCEAN_BUOYS
 group by time(minutes(5) and buoyid)

 union

 sel avg(temperature) as avrg, mode(temperature) as md, 0 as grp
 from OCEAN_BUOYS
 group by time(minutes(10) and buoyid)
) as Q
order by 1;

例: UNIONを使用した無効なGROUP BY TIME

この例では、UNIONの後に、クエリーについて推測するタイムコードがないことを示しています。

select Q.avrg, Q.md, Q.grp
from
(
 sel avg(temperature) as avrg, mode(temperature) as md, 1 as grp
 from ocean_buoys
 group by time(minutes(5) and buoyid)

 union

 sel avg(temperature) as avrg, mode(temperature) as md, 0 as grp
 from ocean_buoys_nonpti
 group by time(minutes(10) and buoyid)
) as Q

order by 1;

*** Failure 4359 Time Series: GROUP BY TIME clause may not be used without an implicit or explicit TIMECODE specification