create table t (client_id int, time_key date);
insert into t
values
(1, '2022-01-01'),
(2, '2022-02-01'),
(22, '2022-02-01'),
(3, '2022-03-01'),
(3, '2022-03-01'),
(4, '2022-04-01'),
(5, '2022-05-01'),
(6, '2022-06-01'),
(7, '2022-07-01'),
(77, '2022-07-01'),
(8, '2022-08-01'),
(9, '2022-09-01'),
(10, '2022-10-01'),
(11, '2022-11-01'),
(12, '2022-12-01');
select
date_part('year', time_key) as "year",
date_part('month', time_key) as "month",
sum(cnt) over(order by time_key rows between 2 preceding and current row) as cumcount
from (
select time_key, count(distinct client_id) as cnt from t group by 1
)foo