目的
グループごとに、タイムコードによって判別される最も古い値を返します。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 |