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.