16.20 - FIRST - Teradata Vantage NewSQL Engine

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

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

目的

グループごとに、タイムコードによって判別される最も古い値を返します。FIRSTは単一スレッド関数です。

FIRST関数を呼び出すには、GROUP BY TIME句を使用します。

構文



構文要素

value_expression
評価するリテラルまたは列式。

value_expressionは、関数によって得られたビュー列に対する参照にはできません。また、順序付き分析関数や集約関数を含めることはできません。

戻り値

戻り値は、入力データ型と同じデータ型です。

結果の計算にはNULLは含められません。

使用上の注意

FIRSTは数値データでのみ有効です。

特定のグループに同時のタイムコード値がある場合など、タイが発生する場合は、タイのすべての結果が返されます。シーケンス番号にデータが含まれる場合、同一のタイムコード値の中で固有であると想定して、タイを中断することができます。

例: FIRSTを使用してTemperatureを返す

/*PTI Table*/
SELECT $TD_TIMECODE_RANGE, $TD_GROUP_BY_TIME, BUOYID, FIRST(TEMPERATURE)
FROM OCEAN_BUOYS
WHERE TD_TIMECODE BETWEEN TIMESTAMP '2014-01-06 08:00:00' AND TIMESTAMP '2014-01-06 10:30:00'
GROUP BY TIME (MINUTES(10) AND BUOYID)
ORDER BY 2,3,4;

/*Non-PTI Table*/
SELECT $TD_TIMECODE_RANGE, $TD_GROUP_BY_TIME, BUOYID, FIRST(TEMPERATURE)
FROM OCEAN_BUOYS_NONPTI
WHERE TIMECODE BETWEEN TIMESTAMP '2014-01-06 08:00:00' AND TIMESTAMP '2014-01-06 10:30:00'
GROUP BY TIME (MINUTES(10) AND BUOYID)
USING TIMECODE(TIMECODE)
ORDER BY 2,3,4;

結果セットは、両方の例で同じです。以下の行3~4では同順位が返されています。

TIMECODE_ RANGE GROUP BY TIME (MINUTES(10)) BUOYID First (TEMPERATURE)
('2014-01-06 10:00:00.000000+00:00', '2014-01-06 10:10:00.000000+00:00') 13 44 43
('2014-01-06 09:00:00.000000+00:00', '2014-01-06 09:10:00.000000+00:00') 7 1 70
('2014-01-06 09:00:00.000000+00:00', '2014-01-06 09:10:00.000000+00:00') 7 1 77
('2014-01-06 08:10:00.000000+00:00', '2014-01-06 08:20:00.000000+00:00') 2 0 10
('2014-01-06 08:00:00.000000+00:00', '2014-01-06 08:10:00.000000+00:00') 1 0 10