首先,我要解决的主要问题是检查在给定日期有多少活跃产品的用户。
我的数据如下:
UserID ActiveFrom ActiveTo
1 2019-02-03 2019-03-05
2 2019-04-01 2019-04-30
1 2019-03-06 2019-04-04
3 2019-05-01 2019-05-31
我认为该解决方案可以选择所有ActiveFrom并与ActiveFrom合并,然后填写缺少的日期,使其看起来像这样:
UserID ActiveOnDate
1 2019-02-03
1 2019-02-04
1 2019-02-05
And so on
然后我可以计算每个日期的所有UserID。但是我找不到查询来填写日期范围内缺少的日期。而且我也不知道这是否是“最简单”的解决方案。有什么想法吗?
答案 0 :(得分:0)
如果您的Date具有Date数据类型(而不是VARCHAR),则可以使用BETWEEN sql运算符 https://sql.sh/cours/where/between
SELECT count(*) FROM user WHERE [dateToTest] BETWEEN ActiveFrom AND ActiveTo;