Sql server 用于漏斗分析的SQL或OLAP模式设计

Sql server 用于漏斗分析的SQL或OLAP模式设计,sql-server,database-schema,data-warehouse,olap,powerpivot,Sql Server,Database Schema,Data Warehouse,Olap,Powerpivot,我有一个电子商务系统,用户在购买之前要经历几个阶段(访问网站、浏览目录、挑选产品、转到购买页面、插入信用详细信息等) 每个事件都保存在以下SQL事件表中: SessionId EventTypeId (PageView, Click, Type), EventValue (HomePage, Button-1 etc...) Timestamp 每个会话保存在以下会话表中(简化): 我的问题是如何设计数据库模式,以便使用它按漏斗过滤/分析会话?我还需要弄清楚的一件事是如何将SQL模式扁平化为O

我有一个电子商务系统,用户在购买之前要经历几个阶段(访问网站、浏览目录、挑选产品、转到购买页面、插入信用详细信息等)

每个事件都保存在以下SQL事件表中:

SessionId
EventTypeId (PageView, Click, Type),
EventValue (HomePage, Button-1 etc...)
Timestamp
每个会话保存在以下会话表中(简化):

我的问题是如何设计数据库模式,以便使用它按漏斗过滤/分析会话?我还需要弄清楚的一件事是如何将SQL模式扁平化为OLAP结构

漏斗应该像在MixPanel/GA/其他web分析平台中一样动态定义

我想使用PowerPivot来分析它

数据示例:

活动:

SessionId EventType EventValue Timestamp

1         PageView  Home       01:01:00
1         PageView  Catalog    01:02:00
1         PageView  Cart       01:02:30
2         PageView  Home       04:01:03
会议:

SessionId SelectedProduct PurchaseAmount

1         Dress-AA2       $12.00           
2         NULL            $0.00
我想在我动态定义的漏斗中查看结果数据。 例如,如果我将漏斗设置为
Home->Catalog->Cart
,我想看到的数据是:

Home     100%
Catalog  50%
Cart     50%

谢谢

Uri,任何数据示例?您是否可以创建计算,即每个事件值的会话ID的不同计数/不同会话ID的总计数?然后您可以按您喜欢的顺序放置它们?@mmarie漏斗中的每一行都是在该阶段之前获得并通过所有先前阶段的所有会话的一个独特计数。我可以用动态SQL实现,但我正在寻找更好的方法。@UriAbramson我建议用PowerPivot实现更好的方法。为每一步创建计算成员。@mmarie您能否就您提供的解决方案多花费一点时间?
Home     100%
Catalog  50%
Cart     50%