背景
我有以下用户的注册渠道,用户创建帐户,然后通过提示进行注册:
id date create_account_date user_creates_account registration_date user_registers
1 12/30/2017 12/30/2017 1 12/30/2017 1
2 12/30/2017 12/30/2017 1 1/2/2018 0
2 1/2/2018 12/30/2017 0 1/2/2018 1
3 12/31/2017 12/31/2017 1 12/31/2017 1
4 1/1/2018 1/1/2018 1 1/3/2018 0
4 1/3/2018 1/1/2018 0 1/3/2018 1
5 1/1/2018 1/1/2018 1 1/1/2018 1
6 1/2/2018 1/2/2018 1 1/3/2018 0
6 1/3/2018 1/2/2018 0 1/3/2018 1
7 1/3/2018 1/3/2018 1 1/3/2018 1
8 1/4/2018 1/4/2018 1 1/4/2018 1
总计:
12/30 12/31 1/1 1/2 1/3 1/4 Total Total 1/2-1/4
User Creates Account 2 1 2 1 1 1 8 3
User Registers 1 1 1 1 3 1 8 5
问题:
我正在尝试添加日期过滤器,我可以在其中选择我想要查看的数据的日期范围。
我添加了create_account_date
作为过滤器,并选择了1月2日到1月4日。但是,这只会强制min(registration date)='1/2/18'
,而max(registration date)
可能会在1月4日之后发生。
我也尝试强制create_account_date = registration_date
,但这低估了那些与create_account_date
不同但仍在过滤日期范围内注册的人。
向
我希望能够按日期范围过滤器/参数过滤输出。
因此,每位用户的create_account_date
和registration date
为> = min(date)
,每位用户create_account_date
和registration date
为< = max(date)
。这里create_account_date
> = registration date
所以使用过滤器实现我会:
1/2/2018 1/3/2018 1/4/2018 Total
User Creates Account 1 1 1 3
User Registers 0 1 1 2
提前谢谢。
答案 0 :(得分:1)
您尝试以错误的方式尝试操作创建帐户和注册日期,而不是仅为普通日期字段添加过滤器,并将字段放在工作表中并查看结果。
如果你真的想要创建一个过滤器,那么你不能只使用普通过滤器来添加条件,而是需要创建两个参数。
开始日期的一个参数
结束日期的一个参数
对于这两个参数,使用日期字段显示数据列表
现在创建两个计算字段
If create account date >=[start date parameter] and create account date < [end date parameter]
then
your field
end
类似地
If registration date >=[start date parameter] and registration date < [end date parameter]
then
your field
end
使用行中的文件并将日期放在工作表的列
中答案 1 :(得分:0)
我没有100%明确目标,但听起来您希望找到account_create_date
介于开始日期和结束日期之间且registration_date
介于开头之间的用户和结束日期。如果是这样,您可以使用WHERE (create_account_date BETWEEN @start_date AND @end_date) AND (registration_date BETWEEN @start_date AND @end_date)
进行过滤。我的语法假设SQL Server,但您也可以使其适用于其他DBMS。