The same question was asked, however all the answers that were provided were meant for the SQL server 2008 and neither of the approaches worked for MySQL or H2:
replace NULL values with latest non-NULL value in resultset series (SQL Server 2008 R2)
Similar question (also SQL server 2008 and we don't know all tables)
Replace null value by latest value
What I need is something that would work with either MySQL or H2
So if we have
product timestamp price
------- ---------------- -----
5678 2008-01-01 12.34
5678 2008-01-02 NULL
5678 2008-01-03 NULL
5678 2008-01-03 23.45
5678 2008-01-04 NULL
The result should be
product timestamp price
------- ---------------- -----
5678 2008-01-01 12.34
5678 2008-01-02 12.34
5678 2008-01-03 12.34
5678 2008-01-03 23.45
5678 2008-01-04 23.45
MySQL code:
CREATE TABLE `table1` (
`product` int(11) NOT NULL,
`timestamp` date NOT NULL,
`price` decimal(10,0) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `table1` (`product`, `timestamp`, `price`) VALUES
(5678, '2008-01-01', '12'),
(5678, '2008-01-02', NULL),
(5678, '2008-01-03', NULL),
(5678, '2008-01-03', '23'),
(5678, '2008-01-04', NULL);
Please keep it simple.