【发布时间】:2016-05-18 15:08:10
【问题描述】:
在sql server 14中设计一个无事实的事实表。应该很简单,但是..:我需要检查每天/客户/团队/状态的访问量。 除了访问量之外,我还需要跟踪每次访问时执行的操作量。
SELECT [VISITS_PK]
,[PERIOD_SK]
,[CLIENT_SK]
,[TEAM_SK]
,[STATUSS_SK]
,[ACTIONS_SK]
FROM [dbo].[FACT_VISITS]
会回来
VISITS_PK PERIOD_SK CLIENT_SK TEAM_SK STATUSS_SK ACTIONS_SK
1 20160515 1 1 1 1
2 20160515 1 1 1 2
3 20160515 1 1 1 3
4 20160515 2 2 1 1
5 20160515 2 2 1 2
总结:完成了 2 次访问,一共做了 5 次操作。
跟踪操作的数量允许我使用 COUNT,但如果我不想考虑这些操作而只查看我总共获得了多少次访问,我是否需要另一个带有另一个粒度的事实表?我宁愿使用一个事实表,因为访问量实际上只是更多的聚合。
编辑:actions_sk 包含指向维度表的链接,其中包含有关已执行操作的详细信息。前 3 行是一次访问,包含 3 个操作,最后两行是一次访问,包含 2 个执行操作。
【问题讨论】:
-
为什么说样本数据显示了两次访问,而每一行都有不同的VISITS_PK?对我来说,这表明每一行都来自不同的访问。
-
我编辑了我的帖子,前 3 行是一次访问,在客户端执行了 3 个操作,最后 2 行是一次访问,执行了 2 个操作。
-
之所以叫VISITS_PK是因为这个表的核心是获取访问量,但是每次访问执行的动作量也需要知道,虽然不是主要问题.所以我认为将表访问和访问_pk 称为键名是不好的命名,因为最低级别是执行的操作。
-
是的,您选择的名称在数据方面误导了我。我已经更新了我的答案。
标签: sql-server dimensional-modeling