我有一个问题,在具有多列的交叉表中有多行度量值,我只想拥有一个。
交叉表如下所示:
|-----Amount-----|
SITE-----|---PERSON---|----------------|
----------------------|----------------|
SITE1 | James | 45 |
SITE2 | John | 34 |
SITE2 | Jones | 34 |
SITE3 | Jane | 54 |
----------------------|----------------|
TOTAL-----------------| 167 |
所以第一列是站点,第二列是站点上的人(注意 site2 有两个人)。结构被简化了,但你明白了。
我想要的是以下结构:
|-----Amount-----|
SITE-----|---PERSON---|----------------|
----------------------|----------------|
SITE1 | James | 45 |
SITE2 | John | 34 |
SITE2 | Jones | |
SITE3 | Jane | 54 |
----------------------|----------------|
TOTAL-----------------| 133 |
因此,度量行仅从站点列生成,而不是从站点和人员列生成。这样我就可以计算跨站点的总量,而不是跨人员。目前,重复行导致总值高于实际值。
有没有办法使用交叉表来实现这一点,或者我是否需要为此用例考虑其他方法(显示站点和人员的第二个列表)。
<--------------------------------编辑-------->
我在示例中错误地解释了金额列。我有一个包含销售事件的表,金额度量实际上应该是每个站点的销售事件数。所以我想要实现的是一个问题:对于给定类型的销售事件,列出发生这些销售的站点,列出在该站点上工作的人员,并列出该站点上的销售事件总数。所以基本上我用一些过滤器(type=something)来获取所有的销售事件。这些销售活动有一个发生地点。该站点有零到 n 名员工。所以销售事件和站点之间有一个内部连接,站点和人员表之间有一个外部连接。SQL 查询返回如下数据:
sales_event_1|site1|James|type1|subtype2
sales_event_2|site2|John|type1|subtype1
sales_event_2|site2|Jones|type1|subtype1
sales_event_3|site2|John|type1|subtype2
sales_event_3|site2|Jones|type1|subtype2
sales_event_4|site3|Jane|type1|subtype1
...
所以交叉表结构如下:
Rows= site|person
Columns= subtype
measure= count (distinct [sales_event_id] for [site])
交叉表看起来像这样:
|-----subtype1----|-----subtype2----|-----total----|
SITE-----|---PERSON---|-----------------|-----------------|--------------|
----------------------|-----------------|-----------------|--------------|
SITE1 | James | 35 | 10 | 45 |
SITE2 | John | 20 | 14 | 34 |
SITE2 | Jones | 20 | 14 | 34 |
SITE3 | Jane | 54 | 0 | 54 |
--------------------------|-------------|-----------------|--------------|
TOTAL-----------------|-----------------|-----------------| 133 |
我希望这对你们有帮助。