Please provide some suggestions to solve the problem below with window functions, in postgres.
Input data:
111;"2016-01-01 10:00:00";"park"
111;"2016-01-01 10:01:00";"guide"
111;"2016-01-01 10:02:00";"guide"
111;"2016-01-01 10:03:00";"operate"
111;"2016-01-01 10:04:00";"guide"
111;"2016-01-01 10:05:00";"guide"
222;"2016-01-01 10:00:00";"park"
222;"2016-01-01 10:01:00";"guide"
222;"2016-01-01 10:02:00";"guide"
222;"2016-01-01 10:03:00";"operate"
222;"2016-01-01 10:04:00";"guide"
222;"2016-01-01 10:05:00";"guide"
Output Required:
111;"2016-01-01 10:00:00";"park";1
111;"2016-01-01 10:01:00";"guide";2
111;"2016-01-01 10:02:00";"guide";2
111;"2016-01-01 10:03:00";"operate";3
111;"2016-01-01 10:04:00";"guide";4
111;"2016-01-01 10:05:00";"guide";4
222;"2016-01-01 10:00:00";"park";1
222;"2016-01-01 10:01:00";"guide";2
222;"2016-01-01 10:02:00";"guide";2
222;"2016-01-01 10:03:00";"operate";3
222;"2016-01-01 10:04:00";"guide";4
222;"2016-01-01 10:05:00";"guide";4
code for Input data:
create temp table input_tb (id int, date timestamp, category text);
insert into input_tb values (111, '2016-01-01:10:00:00', 'park');
insert into input_tb values (111, '2016-01-01:10:01:00', 'guide');
insert into input_tb values (111, '2016-01-01:10:02:00', 'guide');
insert into input_tb values (111, '2016-01-01:10:03:00', 'operate');
insert into input_tb values (111, '2016-01-01:10:04:00', 'guide');
insert into input_tb values (111, '2016-01-01:10:05:00', 'guide');
insert into input_tb values (222, '2016-01-01:10:00:00', 'park');
insert into input_tb values (222, '2016-01-01:10:01:00', 'guide');
insert into input_tb values (222, '2016-01-01:10:02:00', 'guide');
insert into input_tb values (222, '2016-01-01:10:03:00', 'operate');
insert into input_tb values (222, '2016-01-01:10:04:00', 'guide');
insert into input_tb values (222, '2016-01-01:10:05:00', 'guide');
Thanks for your help.
Suresh