欠損値があるタイムバケットの場合は、FILL(NEXT)句を使用して、欠損値を次の非欠損タイムバケット値に置き換えます。後続のすべてのタイムバケットも欠損値である場合、タイムバケットはNULLに設定されます。
例では、FILL句をNEXTとともに使用した場合のクエリーの結果を示します。
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(NEXT) ORDER BY 2,3;
結果: すべてのタイムバケットは、結果セットの一部として含まれています。timebucket #1の欠損値は、直後の非欠損値(この場合はtimebucket #2)の値に設定され、その結果49になります。timebucket #3の欠損値は、直後の非欠損値(この場合はtimebucket #4)の値に設定され、その結果43になります。timebuckets #6、#7、および#8の欠損値は、値の推測元となる後続のタイムバケットがないため、すべてNULLに設定されます。
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 | 49 |
('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 | 43 |
('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 | ? |
('2014-01-06 11:15:00.000000+00:00', '2014-01-06 11:30:00.000000+00:00') | 7 | 44 | ? |
('2014-01-06 11:30:00.000000+00:00', '2014-01-06 11:45:00.000000+00:00') | 8 | 44 | ? |