例: sequenced問合わせでのCOUNT集約 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - テンポラル テーブル サポート

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/bud1592002688266.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

航空機の機体保守サービスを提供する企業によって実行される3つのジョブに関する次の情報を検討します。

ID Job_Type Charge Duration NumWorkersAssigned
123 Wing 80 4 Jan 2011 – 8 Jan 2011 5
123 Fuselage 20 5 Jan 2011 – 7 Jan 2011 3
123 Landing Gear 6 6 Jan 2011 – 9 Jan 2011 1

継続期間が有効時間列であるテンポラル テーブルに情報が格納される場合、すべての行の有効時間を次のように配置できます。

Jan 4 5 6 7 8 9
    |-------|
      |---|
        |-----|

sequenced問合わせの集約は、すべての行の組み合わせされたvalid-timeを、重なり合う期間と重なり合わない期間に分割します。この例では、有効時間の期間は、テーブルのすべての行に対するすべてのvalid-time期間の境界により定義される、次の5つの固有の継続期間を記述します。

Jan 4 5 6 7 8 9
    |-|-|-|-|-|

Jan 4-5、5-6、6-7、7-8 および 8-9。

(WHERE句の対象がない)テーブル全体のsequenced問合わせは、次の5つの固有の継続期間のそれぞれを通じての集約を返します。

SEQUENCED VALIDTIME
SELECT id, COUNT(*) jobcount
FROM aircraft_service
GROUP BY 1
ORDER BY VALIDTIME;

次の結果が得られます。

ID Jobcount VALIDTIME
123 1 ('11/01/04', '11/01/05')
123 2 ('11/01/05', '11/01/06')
123 3 ('11/01/06', '11/01/07')
123 2 ('11/01/07', '11/01/08')
123 1 ('11/01/08', '11/01/09')
集約を含むsequenced valid-time問合わせとともにORDER BY VALIDTIME句を使用する場合、順序には集約を実行するために計算された生成済みのVALIDTIME固有期間が考慮されます。

GROUP BY VALIDTIME句を使用する場合、グループ化は固有期間を使用しませんが、代わりに非集約問合わせの結果に割り当てられる同じVALIDTIME値を使用します。それは、最初に問合わせが実行されたテーブルの該当行の有効期間を含む問合わせの適用期間の交差です。