WITH q AS (
SELECT dt, v sens1, NULL sens2
FROM sens1
UNION ALL
SELECT dt, NULL sens1, v sens2
FROM sens2
)
, q2 AS (
SELECT dt, sens1, sens2
, SUM(IF(sens1 IS NOT NULL, 1, 0)) OVER (ORDER BY dt) gch1
, SUM(IF(sens2 IS NOT NULL, 1, 0)) OVER (ORDER BY dt) gch2
FROM q
ORDER BY dt
)
, q3 AS (
SELECT q2.*
, MAX(sens1) OVER (PARTITION BY gch1) sens1_f
, MAX(sens2) OVER (PARTITION BY gch2) sens2_f
FROM q2
ORDER BY dt
)
SELECT -- *
dt, sens1_f, sens2_f
FROM q3