PTIテーブルを照会する場合は、GROUP BY TIME句を使用できます。GROUP BY TIME句を参照してください。SELECTの詳細については、Teradata Vantage™ SQLデータ操作言語、B035-1146を参照してください。
SELECT文でPTIテーブルを参照する場合:
- TD_TIMEBUCKET列で定義されたPTIテーブルからSELECT *を指定すると、システム生成のTD_TIMEBUCKET列を除く、テーブル内のすべての列が返されます。
- PTIテーブルを照会するときに、システム生成のTD_TIMECODEおよびTD_SEQNO列をSELECT文で指定できます。
- システム生成のTD_TIMEBUCKET列をSELECT文で指定することはできません。ただし、TD_GETTIMEBUCKET()関数を使用して、TD_TIMEBUCKETデータを取得できます。TD_GETTIMEBUCKETを参照してください。
- BETWEEN論理述部には上限境界と下限境界が含まれ、複数のタイムバケット境界にまたがることができます。GROUP BY TIME (HOURS(1))を指定すると、各タイムバケットには1時間の範囲の下限境界が含まれます。08:00:00のタイムスタンプは1つのタイムバケットに含まれ、09:00:00のタイムスタンプは次のタイムバケットに含まれます。例えば、BETWEEN 08:00:00 AND 09:00:00を指定し、1時間のタイムバケット(つまり、HOURS(1))が定義されている場合、2つのタイムバケットからの行が返されます。
- SELECT文と同様に、順序を指定する必要があります。そうしないと、行は順不同で返されます。例えば、SELECT * FROM table_name ORDER BY column_name。
2つの期間から時系列データを取得する
この例を使用して、2日間の携帯電話の中継塔の信号強度を、UNIONを使用して取得します。各日の$TD_GROUP_BY_TIME(タイムバケット)の出力を使用して、同一の10分間隔を関連付けます。ユーザーは2日間の各10分間隔について中継塔の信号の変化を対象比較できます。
CREATE TABLE cell_towers_dt_pti (celltwrcell INT, celltwrrange INT, celltwrsignal INT) PRIMARY TIME INDEX (TIMESTAMP(0), DATE '1990-01-01', HOURS(1) ); SHOW TABLE cell_towers_dt_pti; --------------------------------------------------------------------------- CREATE SET TABLE JW.cell_towers_dt_pti ,NO FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = DEFAULT, DEFAULT MERGEBLOCKRATIO, MAP = TD_MAP1 ( TD_TIMEBUCKET BIGINT NOT NULL GENERATED SYSTEM TIMECOLUMN, TD_TIMECODE TIMESTAMP(0) NOT NULL GENERATED TIMECOLUMN, celltwrcell INTEGER, celltwrrange INTEGER, celltwrsignal INTEGER) PRIMARY TIME INDEX (TIMESTAMP(0), DATE '1990-01-01', HOURS(1), NONSEQUENCED);
SELECT $TD_TIMECODE_RANGE AS tcrange, $TD_GROUP_BY_TIME AS timebucket ,first(celltwrcell) AS iotFirst ,median(celltwrrange) AS iotTypical FROM cell_towers_dt_pti WHERE TD_TIMECODE BETWEEN TIMESTAMP '2015-01-01 00:00:00' AND TIMESTAMP '2015-01-01 23:59:59' GROUP BY TIME(minutes(10)) UNION SELECT $TD_TIMECODE_RANGE AS tcrange2, $TD_GROUP_BY_TIME AS timebucket2 ,first(celltwrcell) AS iotFirst2 ,median(celltwrrange) as iotTypical2 FROM cell_towers_dt_pti WHERE TD_TIMECODE BETWEEN TIMESTAMP '2015-01-02 00:00:00' AND TIMESTAMP '2015-01-02 23:59:59' GROUP BY TIME(minutes(10)) ORDER BY 2,1 ; *** Query completed. No rows found. *** Total elapsed time was 1 second.