例: 前のタイムバケット値を使用したFILL - Teradata Database - Teradata Vantage NewSQL Engine

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/sfz1493079039055.ditamap
dita:ditavalPath
ja-JP/sfz1493079039055.ditaval
dita:id
B035-1208
Product Category
Software
Teradata Vantage

FILL(PREVIOUS)またはFILL(PREV)句を使用して、欠落値を、欠落値を持つタイムバケットの前のタイムバケット値に置き換えます。

FILL(PREVIOUS)およびFILL(PREV)は同一であり、同じ結果を生成します。

この例では、FILL句をPREVIOUS/PREVとともに使用した場合のクエリーの結果を示します。

SELECT $TD_TIMECODE_RANGE, $TD_GROUP_BY_TIME, BUOYID, AVG(TEMPERATURE)
FROM OCEAN_BUOYS
WHERE TD_TIMECODE BETWEEN TIMESTAMP '2014-01-06 09:45:00' AND TIMESTAMP '2014-01-06 11:45:00'
AND BUOYID=44
GROUP BY TIME (MINUTES(15) AND BUOYID) FILL(PREVIOUS)
ORDER BY 2,3;

SELECT $TD_TIMECODE_RANGE, $TD_GROUP_BY_TIME, BUOYID, AVG(TEMPERATURE)
FROM OCEAN_BUOYS
WHERE TD_TIMECODE BETWEEN TIMESTAMP '2014-01-06 09:45:00' AND TIMESTAMP '2014-01-06 11:45:00'
AND BUOYID=44
GROUP BY TIME (MINUTES(15) AND BUOYID) FILL(PREV)
ORDER BY 2,3;

結果: すべてのタイムバケットは、結果セットの一部として含まれています。タイムバケット#1の欠落値は、値を推論する元のタイムバケットがないため、NULLです。タイムバケット#3の欠落値は、直前の非欠落先行値(この場合はタイムバケット#2)の値に設定され、値49になります。タイムバケット#6、#7、および#8の欠落値はすべて、直前の非欠落先行値(この場合はタイムバケット#5)に設定され、値43になります。

両方のクエリーの結果は同じであるため、1つの結果セットだけが表示されます。
TIMECODE_RANGE GROUP BY TIME(MINUTES(15)) BUOYID AVG(TEMPERATURE)
('2014-01-06 09:45:00.000000+00:00', '2014-01-06 10:00:00.000000+00:00') 1 44 ?
('2014-01-06 10:00:00.000000+00:00', '2014-01-06 10:15:00.000000+00:00') 2 44 49
('2014-01-06 10:15:00.000000+00:00', '2014-01-06 10:30:00.000000+00:00') 3 44 49
('2014-01-06 10:30:00.000000+00:00', '2014-01-06 10:45:00.000000+00:00') 4 44 43
('2014-01-06 10:45:00.000000+00:00', '2014-01-06 11:00:00.000000+00:00') 5 44 43
('2014-01-06 11:00:00.000000+00:00', '2014-01-06 11:15:00.000000+00:00') 6 44 43
('2014-01-06 11:15:00.000000+00:00', '2014-01-06 11:30:00.000000+00:00') 7 44 43
('2014-01-06 11:30:00.000000+00:00', '2014-01-06 11:45:00.000000+00:00') 8 44 43