16.20 - DELTA_T - Teradata Vantage NewSQL Engine

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

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

目的

開始イベントと終了イベントの間の時間差(つまりDELTA_T)を計算します。計算は、時間順時系列データセットに対して実行されます。

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

構文



構文要素

starting_sql_condition
検索する期間の開始を定義する、サポートされているWHERE句。
ending_sql_condition
検索する期間の終了を定義する、サポートされているWHERE句。

戻り値

DELTA_Tは、各開始-終了ペアの開始と終了のタイムコードで構成されるPERIOD(TIMESTAMP WITH TIME ZONE)型を返します。

<Teradata Vantage™ SQL日付と時刻関数および式、B035-1211>の「期間関数および演算子」で説明されているように、PERIOD DATA TYPES関数を使用して結果を検査します。

GROUP BY TIMEウィンドウ内で検出された完全な開始-終了ペアごとに1つの結果が返されます。開始と終了のペアのプロセスは次のとおりです。
  • 現在のソース データが開始条件を満たしている場合、現在のタイムコードが開始時刻として保存されます。
  • 現在のソース データが終了条件を満たしていて、保存された開始タイムコードがすでに存在する場合、開始タイムコードは結果ペアとして検出された終了タイムコードとともに保存されます。

処理アルゴリズムは、複数の結果が各グループに見つかる可能性があることを意味します。

開始/終了のペアがない場合、結果行は返されません。

< 1マイクロ秒のデルタを持つDELTA_Tの結果(単一の時点からの結果の場合は0のデルタを含む)は、自動的に1マイクロ秒に丸められます。これは、Periodデータ型の開始と終了の境界が等価ではない可能性があることを示すPeriodデータ型のセマンティクスと一致するように厳密に適用されます。Teradataでサポートされている最小粒度はマイクロ秒なので、これらの結果はそれに従って丸められます。

使用上の注意

SELECTリストでDELTA_Tを明示的に指定できるのは1回だけですが、SELECTリスト、ORDER BY、HAVING句では、さらにDELTA_Tを別名で指定できます。

WHERE句でサポートされている任意のSQL構文を使用して、開始と終了の条件を指定します。DELTA_Tを使用して、次のような2つのイベント間の経過時間を追跡します。
  • ユーザーが顧客サービス ラインを呼び出し、顧客サービス担当者につながるまでの時間。
  • 最小の結果と最大の結果の間の時間(温度、風速、塩分濃度など)。
  • ソフトウェアの欠陥とその解決を報告するまでの時間。

顧客がサービス担当者に問合わせをするときに1日のどの時間にどの程度待たされるか、または週のどの曜日にどの程度待たされるかを把握することは、企業が実際のニーズに応じて顧客サービス部門の人員を配置するのに役立ちます。会社はより効率的に資金を用い、顧客により良いサービスを提供できるようになります。

DELTA_T関数を他の関数と組み合わせることはできません。

DELTA_TはGROUP BY TIME(*)とともに使用される唯一の集約関数です。

GROUP BY TIMEを無制限の時間を指定して使用する場合(GROUP BY TIME(*)など)、システム仮想列には次のルールが適用されます。
  • $TD_GROUP_BY_TIME: タイムバケットが1つしかないため、常に1の値を持ちます。
  • $TD_TIMECODE_RANGE: グループに対して読み取られる最初と最後のタイムコード値で構成されます。

WHERE句で評価されるデータ(例えば、最小温度と最大温度の結果)は、同じデータ行に存在するタイムコード値に属している必要があることに注意してください。これは予想される動作です。ただしこの想定は、一緒に複数のテーブルに参加するときには違反となる可能性があります。結合の結果によって特定のデータ ポイント(例えば、温度の読み取り)がデータ行に存在するようになるものの、そのデータ ポイントが発生したタイミングを示すタイムコードはないというクエリーを構築できます。このようなシナリオでは、結果が予想どおりでないか、または誤りとなる可能性が高くなります。Teradata Databaseはこれらのタイプのクエリーを検出しないため、データ ポイントとタイムコードの間に確実に相関を保持する必要があります。