Clickhouse 中的连续事件序列匹配

问题描述

我正在尝试使用 Clickhouse 进行一些漏斗分析。我知道 sequenceMatch/windowFunnel 函数,但它们允许序列之间的事件。我试图显示有多少用户使用不同的查询字符串参数连续导航到某个特定路径。

给定以下数组 [url,eventssequence]

['/someurl/page?a=1',1]
['/someurl/page?a=2',2]
['/someurl/page?a=3',4]
['/someurl/page?a=4',5]
['/someurl/page?a=4',6]

我想评估上述事件序列是否让用户直接从页面导航到第 3 页,事件 1->2、4->5 和 5-6。

解决方法

解决了这个问题 - 您可以将序列传递给 sequenceCount 并使用确保事件没有间隙的模式

(?1)(?t<=1)(?2)

 sequenceCount('(?1)(?t<=1)(?2)')(sequence,ilike(page,'%a%'),'%a%')) as sequences