构建用户旅程 - 您'self, loop'如何加入?



站点

假设我有一个网站,页面如:

  1. 主页
  2. 第A页
  3. 第B页
  4. 第C页
  5. 签出

用户旅程路径

因此,一些可行的用户旅程路径可能是:

  • 主页->页面A->页面B->页面C->签出
  • 主页->页面A->第B页

当前架构

如果SQL中的表webPages看起来像这个

afterPage第A页第B页第C页结账第B页
userid beforePage
1 主页
1 第A页
1 第B页
1 第C页
2 主页 第A页
2 第A页

分配一个序列号和聚合。需要注意的是,您需要一个列来指定排序:

select userid,
max(case when seqnum = 1 then beforepage end) as beforepage,
max(case when seqnum = 1 then afterpage end) as afterpage_1,
max(case when seqnum = 2 then afterpage end) as afterpage_2,
max(case when seqnum = 3 then afterpage end) as afterpage_3
from (select t.*,
row_number() over (partition by userid order by <ordering col>) as seqnum
from t
) t
group by userid;

最新更新