16.20 - 例: GROUP BY TIMEとUNION - Teradata Vantage NewSQL Engine

Teradata Vantage™ 時系列テーブルおよび操作

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1208-162K-JPN

次の例は、タイムコードがクエリーごとであると推測したルールを示していますが、今回は、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