我可以将SQL Server或Vertica用作数据库,将Tableau用作报告工具。这些介质中的任何一种的解决方案都是有帮助的。
数据资源:
我有一个包含100条记录的表(userActivity),其结构为:User,StartDate,EndDate
需要:
我对按日期和月份显示“总活动天数”的报告感兴趣,这意味着,如果User1的范围为“ 20180101”至“ 20180331”,则他们将在1月,2月和3月的每一天贡献一天,或31如果按月汇总,则为28天和31天。
目标:
最终,我将所有用户的总活动天数汇总为输出,以实现每天/每月的单个总数。
该报告将涉及永久性,因此,我希望解决方案不要按日/月对CASE / IF-THEN语句进行硬编码。
谢谢!
最佳答案
尽管递归CTE在这种情况下是不错的选择,但可以单独使用tableau处理。假设您有此数据,以下是生成视图所需的步骤。
创建具有所有预期天数的参考表。即使您需要涵盖从01/01/2018到01/01/2043的25年,这仍然少于1万行。
您需要两列日期完全相同的表,因为Tableau不允许同一列上有多个联接条件。
使用以下条件在参考日历和数据之间创建内部联接。
建立视图