Я использую приведенный ниже запрос для поворота моих данных и генерации CSV, но проблема в том, что у меня есть набор данных, в котором точки данных разбросаны с каждой отметкой времени.
with map_date as (
SELECT
vin,
epoch,
timestamp,
date,
map_agg(signalName, value) as map_values
from hive.vehicle_signals.vehicle_signals_flat
where date(date) = date('2020-03-12')
and date(cast(from_unixtime(epoch) as timestamp) - interval '0' hour) = current_date - interval '2' day
and vin = '000011'
and signalName in ('timestamp','epoch','msgId','usec','vlan','vin','msgName','value')
GROUP BY vin, epoch, timestamp, date
order by timestamp desc
)
SELECT
epoch
, timestamp
, CASE WHEN element_at(map_values, 'value') IS NOT NULL THEN map_values['value'] ELSE NULL END AS value
, vin
, current_date - interval '2' day AS date
from map_date
В результате я получаю следующий CSV. Есть ли способ перенести значение до тех пор, пока новое значение не будет найдено при более новой отметке времени? Как и на рисунке ниже, приходит значение «14 .3», а следующее значение «16 .5» появляется после нескольких отметок времени. Как я могу перенести значение «14 .3» до 7-й строки и повторить logi c для всего столбца. Как я могу сделать мое поле вывода похожим на столбец «G» на изображении с помощью Presto?
Заранее спасибо !!