PIVOT中多表连接建模度量时注意这一点

本文分两小块,先概述了建模的含义,再举例说明因忽略路径方向而在计算汇总时产生的逻辑理解错误

一、PIVOT建模,即,将具有关系的表,通过表中关键字段连接,所构建的模型即表的集合。

        表连接方式有这几种:多(表)对 一(表)、一对一,多对多,单向或双向连接,这里的“多”“一”讲的是连接字段的属性,值是不是唯一的,唯一则为一表,不唯一则为多表。

        在应用中,常见多对一的连接,如下图中6个表间的连接,均是多对一,单向的关系

        建模的好处有,可以从更多维度、更便捷地对数据进行统计分析或计算。

二、举例:

        有这样6张表,如上图所示,已构建好连接模型,现需要计算某店铺所有员工的目标完成率,下面这个问题要考虑到!

        上图的多表连接模型,添加度量值字段[员工目标达成率](公式:员工目标达成率 = [销售额] / sum('员工月销目标表'[目标])后,可以快速筛选计算出各员工2020年6月的目标达成率,如下图可视化表筛选得出。

        但这里的“总计”项是没有意义的,由于“店铺表”到“员工月销目标表”的'路径'是不通的(看图上箭头小标指向),“店铺表”中的维度是不能够筛选“员工月销目标表”中的度量的,即,公式中的[目标]不被店铺所筛选,所以,计算中用到的[目标]值是 “员工月销目标表”中2020年6月份所有店铺所有员工的销售目标,计算出的达成率与我们的常规逻辑理解是不同的。

        那 天洋 店铺下各员工的目标达成率又是怎么能筛选出来呢?

        我的理解是,店铺与员工间存在一种客观事实的关系,一般,员工DDD001 是天洋店铺的员工,那就不会是 万达店铺里的(对掌管好几家店铺的领导,考核目标达成率的情况,就是另一种计算逻辑了),所以 在下面 各员工目标达成率 这个图里,[销售额] 被 店铺表里的”天洋“筛选了一遍,最终结果呈现出的便是 天洋店铺下员工的销售,[员工姓名]取自“员工表”,看路径,“员工表”里的维度是可以筛选“员工月销目标表”中的度量的,所以这样看各员工的目标达成率是没有问题的,只总计的达成率没有意义。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值