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

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

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

USING TIMECODE句では、オプションの連番列を指定できます。タイムコード列の値が同じ場合、結果はさらにグループ化され、連番列によって順序付けられます。デフォルトのシステム生成連番列であるTD_SEQNOは、単一の順次PTIテーブルが見つかった場合に推測されます。使用するTD_SEQNO列に複数の候補がある場合は、Teradata Databaseによって推測される連番はありません。

USING TIMECODE句を使用して、連番なしでタイムコードを指定して、この動作を上書きできます。

この例では、TD_SEQNOを連番列として推論します。

select avg(temperature)
from ocean_buoys_seq
group by time(minutes(10));

次の例は、USING TIMECODE句が推測を上書きするため、TD_SEQNOが連番列として推測されないことを示しています。連番をグループ化の目的で使用すべきでないことを意味するUSING TIMECODE句に連番が指定されていない場合には、次のようになります。

select avg(temperature)
from ocean_buoys_seq
group by time(minutes(10))
using timecode(td_timecode);

この例では、複数の順次PTIテーブルがあるため、TD_SEQNOが連番列として推測されていないことを示しています。

select avg(b.temperature)
from ocean_buoys_seq a , ocean_buoys_seq b
group by time(minutes(100))
using timecode(a.td_timecode);

データが非PTIテーブル内で順次化されている場合は、そのテーブルから使用する連番を指定することもできます。非PTIソースのUSING TIMECODE句では、列は推測されません。

この例では、連番を指定する方法を示しています。

select avg(temperature)
from non_pti_tbl_seq
group by time(minutes(10))
using timecode(timecode, sequenceno);