MAQL聚合与过滤:同公司同时间段员工最大工作日数指标实现问题
问题根因
你当前的B指标计算逻辑受报表筛选上下文影响,内部计算员工出勤总和的子查询会继承员工、团队等维度的过滤条件:当你筛选单个员工时,子查询仅能获取该员工的出勤数据,取MAX后自然返回该员工的实际出勤天数,而非公司维度的最大工作日数。
修正后的MAQL语句
SELECT MAX(SELECT SUM(Workday) BY Employee WITHOUT PF EXCEPT Date (Worked Date), Company) BY Company ALL OTHER
逻辑说明
- 内部子查询通过
WITHOUT PF EXCEPT Date (Worked Date), Company配置,仅保留报表的日期区间、所属公司两个筛选条件,忽略员工、团队等所有其他维度的过滤,保证可以拉取到当前公司、当前时间段内所有员工的出勤总和数据 - 外层依然按公司维度取所有员工出勤总和的最大值,符合你定义的全勤工作日数规则
验证方案
- 筛选单个员工时,B指标返回值与筛选该员工所属全公司所有员工时的B指标值一致
- 同时筛选多个不同国家的子公司时,各公司对应的B指标值会分别取对应公司的最大出勤天数,适配各地不同的假期规则
临时方案注意事项
当前逻辑基于「公司内至少有1名员工全勤」的假设推导全勤天数,若出现全公司所有员工都有缺勤的情况,B值会低于实际工作日数,后续导入官方假期规则后替换即可。
内容的提问来源于stack exchange,提问作者juan.cruz
相关产品推荐
相关产品推荐

