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.
CREATE TABLE mytable(
Id INT
,userName VARCHAR(10)
,Browser VARCHAR(9)
,Platform VARCHAR(10)
,TS timestamp
);

INSERT INTO mytable(Id,userName,Browser,Platform,TS) VALUES (1,'abc','Firefox',NULL,'2006-10-05 11:55:45');

INSERT INTO mytable(Id,userName,Browser,Platform,TS) VALUES (2,'xyz','Chrome',NULL,'2007-10-07 12:34:17');

INSERT INTO mytable(Id,userName,Browser,Platform,TS) VALUES (3,'mnp','Safari',NULL,'2008-10-09 08:19:37');

INSERT INTO mytable(Id,userName,Browser,Platform,TS) VALUES
(4,'abc','Safari',NULL,'2010-10-13 04:28:14')
, (5,'abc',NULL,'Windows','2006-01-01 12:02:45')
, (6,'xyz',NULL,'Linux','2007-01-01 12:01:20')
, (7,'mnp',NULL,'MAC','2008-01-01 12:02:29')
, (8,'abc',NULL,'MAC','2010-03-09 13:06:59')

with cte as (
select
*
, coalesce(lead(ts) over(order by ts),current_time) nxt
from mytable
)
select
id
, username
, coalesce(browser,(select browser from cte where t.ts between cte.ts and cte.nxt limit 1 )) browser
, coalesce(platform,(select platform from cte where t.ts between cte.ts and cte.nxt limit 1 )) platform
, ts
, nxt
from cte t


id username browser platform ts nxt
5 abc null Windows 2006-01-01 12:02:45 2006-10-05 11:55:45
1 abc Firefox Windows 2006-10-05 11:55:45 2007-01-01 12:01:20
6 xyz Firefox Linux 2007-01-01 12:01:20 2007-10-07 12:34:17
2 xyz Chrome Linux 2007-10-07 12:34:17 2008-01-01 12:02:29
7 mnp Chrome MAC 2008-01-01 12:02:29 2008-10-09 08:19:37
3 mnp Safari MAC 2008-10-09 08:19:37 2010-03-09 13:06:59
8 abc Safari MAC 2010-03-09 13:06:59 2010-10-13 04:28:14
4 abc Safari MAC 2010-10-13 04:28:14 2021-02-10 08:33:52