add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
WITH incomplete_table(date, group_name, value) AS (
VALUES
('2022-01-01'::date, 'a', 1)
, ('2022-01-15'::date, 'a', 0.5)
, ('2022-01-31'::date, 'a', 0.2)
, ('2022-01-02'::date, 'b', 0.1)
, ('2022-01-10'::date, 'b', 0.15)
, ('2022-01-20'::date, 'b', 0.15)
)
SELECT d.date, g.group_name, i.value
FROM (
SELECT date::date
FROM generate_series (timestamp '2022-01-01'
, timestamp '2022-01-31'
, interval '1 day') date
) d
CROSS JOIN (SELECT DISTINCT group_name FROM incomplete_table) g
LEFT JOIN LATERAL (
SELECT i.group_name, i.value
FROM incomplete_table i
WHERE i.group_name = g.group_name
AND i.date <= d.date
ORDER BY i.date DESC
LIMIT 1
) i ON true
ORDER BY g.group_name, d.date DESC;
date group_name value
2022-01-31 a 0.2
2022-01-30 a 0.5
2022-01-29 a 0.5
2022-01-28 a 0.5
2022-01-27 a 0.5
2022-01-26 a 0.5
2022-01-25 a 0.5
2022-01-24 a 0.5
2022-01-23 a 0.5
2022-01-22 a 0.5
2022-01-21 a 0.5
2022-01-20 a 0.5
2022-01-19 a 0.5
2022-01-18 a 0.5
2022-01-17 a 0.5
2022-01-16 a 0.5
2022-01-15 a 0.5
2022-01-14 a 1
2022-01-13 a 1
2022-01-12 a 1
2022-01-11 a 1
2022-01-10 a 1
2022-01-09 a 1
2022-01-08 a 1
2022-01-07 a 1
2022-01-06 a 1
2022-01-05 a 1
2022-01-04 a 1
2022-01-03 a 1
2022-01-02 a 1
2022-01-01 a 1
2022-01-31 b 0.15
2022-01-30 b 0.15
2022-01-29 b 0.15
2022-01-28 b 0.15
2022-01-27 b 0.15
2022-01-26 b 0.15
2022-01-25 b 0.15
2022-01-24 b 0.15
2022-01-23 b 0.15
2022-01-22 b 0.15
2022-01-21 b 0.15
2022-01-20 b 0.15
2022-01-19 b 0.15
2022-01-18 b 0.15
2022-01-17 b 0.15
2022-01-16 b 0.15
2022-01-15 b 0.15
2022-01-14 b 0.15
2022-01-13 b 0.15
2022-01-12 b 0.15
2022-01-11 b 0.15
2022-01-10 b 0.15
2022-01-09 b 0.1
2022-01-08 b 0.1
2022-01-07 b 0.1
2022-01-06 b 0.1
2022-01-05 b 0.1
2022-01-04 b 0.1
2022-01-03 b 0.1
2022-01-02 b 0.1
2022-01-01 b null