如何计算创建的字段?为什么计算错了?

How to calculated on created fields? Why the calculation is wrong?

我正在从事劳动力分析项目。在 Google Data Studio 中进行条件计算时,我做了一些案例。但是,当我成功创建新字段时,我无法根据创建的字段再次进行计算。

根据我的原始数据,我通过应用 Case When 条件计算生成了 start_headcount、new_hires、终止、end_headcount。但是,我在下一步计算 Turnover rate 和 Retention rate 时失败了。

周转率的公式是 术语/((start_headcount+end_headcount)/2) 保留是 end_headcount/start_headcount 然而,结果是错误的。我的table部分如下:

Supervisor  sheadcount  newhire  terms  eheadcount  turnover  Retention
    A          1            3      1         3      200%          0%
    B          6            2      2         6      200%         500%
    C          6            1      3         4      600%         300%

所以结果是错误的。 A的换手率应该是1/((1+3)/2)=50%;对于 B 应该是 2/((6+6)/2)=33.33%.

我不知道为什么会出错。有人可以帮忙吗?

例如,我在下面为每个员工start_headcount写了

CASE
WHEN Last Hire Date<'2018-01-01' AND Termination Date>= '2018-01-01'
OR Last Hire Date<'2018-01-01' AND Termination Date IS NULL
THEN 1
ELSE 0
END

也就是说,如果一个员工符合上面的标准,就会得到1。然后他们都归在一个主管之下。我认为这可能是为什么总周转率错误的问题,因为它不是在分组日期计算而是在每个记录上然后求和。

很可能您正尝试在同一个查询中执行这两个步骤,因此新创建的字段(如 start_headcount 等)在同一个 select 语句中尚不可见 - 相反,您需要将首先作为子查询进行计算,如下面的示例

#standardSQL
SELECT *, terms/((start_headcount+end_headcount)/2) AS turnover  
FROM (
  <query for your first step>
)