分组后相邻子集交集数量计算 — 从SQL到SPL #14

分组后相邻子集交集数量计算 — 从SQL到SPL #14

💡 原文英文,约300词,阅读约需2分钟。
📝

内容提要

文章讨论了如何计算项目中每天参与人员与前一天参与人员的交集。由于SQL分组无法保留子集,建议先按人员分组,再判断每人是否在特定日期及前一天出现,最后进行汇总,过程较为复杂。

🎯

关键要点

  • 文章讨论了如何计算项目中每天参与人员与前一天参与人员的交集。
  • 项目数据库记录了每天参与项目的多个人员,一个人可以在一天内参与多个任务。
  • 需要计算每天有多少人也在前一天参与了项目。
  • 由于SQL分组无法保留子集,建议先按人员分组,再判断每人是否在特定日期及前一天出现。
  • 计算过程涉及多层嵌套和窗口函数,较为复杂。
  • 在SPL中,分组后可以保留子集并引用相邻子集。
  • 代码步骤包括从数据库加载数据、按日期分组但不聚合、创建新的二维表并计算交集。

延伸问答

如何计算每天参与人员与前一天参与人员的交集?

需要先按人员分组,再判断每人是否在特定日期及前一天出现,最后进行汇总。

为什么SQL分组无法保留子集?

因为SQL分组后必须立即聚合,无法保留子集进行后续操作。

在SPL中如何处理分组以保留子集?

在SPL中,分组后可以保留子集并引用相邻子集,便于后续计算。

计算交集的过程涉及哪些复杂步骤?

计算过程涉及多层嵌套和窗口函数,需创建新的二维表并计算交集。

如何从数据库加载数据并去重?

首先从数据库加载数据,然后根据EMP-ID进行去重。

第一天的参与人员如何处理?

假设第一天所有人都参与了项目,因此不需要计算交集。

➡️

继续阅读