从开始和结束日期列计算每天的活跃用户

Posted

技术标签:

【中文标题】从开始和结束日期列计算每天的活跃用户【英文标题】:Calculate Active users per day from Start and End date columns 【发布时间】:2019-11-28 19:28:53 【问题描述】:

我有如下表,我想创建一个每天唯一活跃用户的视图。每个用户都有一个开始和结束日期期间,但有些日子是重叠的。我该如何解决这个问题?

【问题讨论】:

用您正在使用的数据库标记您的问题。 【参考方案1】:

您可以取消透视数据并使用聚合和窗口函数。这看起来像:

select dte, sum(inc) as change_on_day,
       sum(sum(inc)) over (order by dte) as active_on_day
from ((select user, start_date as dte, 1 as inc from t) union all
      (select user, end_date, -1 from t)
     ) t
group by dte
order by dte;

【讨论】:

这不会在两个日期之间为所有活跃用户提供。

以上是关于从开始和结束日期列计算每天的活跃用户的主要内容,如果未能解决你的问题,请参考以下文章

sql 连续活跃天数

使用Tableau计算新增、活跃留存

PHP计算一年多少个星期和每周的开始和结束日期

如何从单个日期列-oracle 获取开始/结束日期

计算列组中的列数

给定日期范围(开始日期和结束日期),我如何计算天数,不包括 .Net 中指定的星期几?