(последовательные пары) считать? Или надо не мудрить и делать оконными функциями.
Например, из первой таблички получить второй датасет:
insert into events (id, user, event) values
(1, 'alan', 'init'),
(2, 'alan', 'login'),
(3, 'bob', 'init'),
(4, 'alan', 'checkpoint'),
(5, 'bob', 'login'),
(6, 'alan', 'checkpoint'),
(7, 'bob', 'logout'),
(8, 'bob', 'login'),
(9, 'alan', 'logout'),
(10, 'bob', 'logout');
init -> login: 2
login -> checkpoint: 1
checkpoint -> checkpoint: 1
login -> logout: 2
logout -> login: 1
checkpoint -> logout: 1
Думаю чего то особого нет, впрочем на оконках это достаточно тривиально делается (одна LAG)
https://clickhouse.com/docs/en/sql-reference/aggregate-functions/parametric-functions/#windowfunnel
Через оконку будет лучше, не нужно будет перечислять все возможные комбинации самостоятельно
Обсуждают сегодня