我可以使用 SQL Server 或 Vertica 作为数据库,使用 Tableau 作为报告工具。使用任何这些媒介的解决方案都会有所帮助。
数据资源: 我有一个包含 100 条记录的表 (userActivity),其结构为:User、StartDate、EndDate
需要: 我有兴趣按日和按月准备显示“总活跃天数”的报告,这意味着如果 User1 的范围为“20180101”到“20180331”,他们将在 1 月、2 月和 3 月或 31 日每天贡献一天,如果按月汇总,则为 28 和 31 天。
目标: 我最终将汇总所有用户的总活跃天数作为输出,以实现每天/每月的单一总计。
此报告将永久有效,因此我更喜欢不按日/月对 CASE/IF-THEN 语句进行硬编码的解决方案。
谢谢!
最佳答案
虽然递归 CTE 是这种情况的良好候选者,但它可以单独使用 tableau 来处理。假设您有这些数据,以下是生成 View 所需的步骤。
- 创建一份包含所有预期日期的引用表。即使您需要覆盖从 01/01/2018 到 01/01/2043 的 25 年,这仍然少于 10k 行。
您需要两列具有完全相同的日期,因为 Tableau 不允许同一列上存在多个联接条件。
关于sql - 使用 SQL Server 或 Vertica 将按日期范围的记录转换为按日/月的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53326856/