我正在开发一个项目来构建 ETL 流程和仪表板来控制一些 KPI 指标。我在 BigQuery 中创建了一个表,每月一次,我保存一些键值,这些键值是通过聚合从其他表中提取的数据计算得出的。我正在测量员工发送的电子邮件,因此为了计算其中一个关键值,我需要从两个不同的表中读取并执行左连接以匹配聚合中存在的公司的每个工作区域(左表),该区域有多少员工(右加入)。
这是我的表格的简化:
已发送电子邮件,按区域分组
| Area Id | Service | Bad employees | ...
| 1 | Gmail | 3416 | ...
| 2 | Gmail | 10782 | ...
| 2 | Groups | 9267 | ...
员工总数,按地区分组
| Area Id | Total employees | ...
| 1 | 34124 | ...
| 2 | 82561 | ...
| 3 | 49472 | ...
问题来了:如您所见,第一个表(已发送的电子邮件)有一个字段没有出现在第二个表中;我说的是Service
。出于这个原因,当我加入两个表时,我将获得该Total employees
字段的重复值:
连接表
| Area Id | Service | Bad employees | Total employees |
| 1 | Gmail | 3416 | 34124 |
| 2 | Gmail | 10782 | 82561 |
| 2 | Groups | 9267 | 82561 |
该最终表格将用于在 Data Studio 中创建报告。我想将该Service
字段保留在我的最终表格中,因为我想为用户提供按其过滤的选项。我无法编辑employees 表架构并Service
在其条目中添加一个字段,因为该信息在 emails 表中是唯一的,它表示发送电子邮件的服务,与employees 表无关。
我正在努力为这个问题找到一个有效的数据建模选项;如果使用此解决方案并且我想在 Data Studio 上表示,比如说,Total number of employees per selected areas
对于包含多个服务的那些区域,我会得到错误的值:
- 员工总数 1 区: 34.124
- 总员工区 2: 82.561 + 82.561 = 165.122
- 员工总数: 34.124 + 165.122 = 199.246
- 预期值: 34.124 + 82.561 = 116.685
这将影响使用员工总价值的任何指标。
如何保留已Service
连接表的字段并在 Data Studio 上仍然表示正确的值Total employees
?