如何使用某些条件过滤器找出 users_id

how to Find out users_id with some conditions filter

我有一个这样的table

order_id | user_id | createdAt | transaction_amount

order_id为交易id,user_id为用户,createdAt为日期,transaction_amount为每个id订单的交易。

等等 tableau 我想在“2020-01-01”到“2020-01-31”的时间范围内找到具有 2 个条件的用户

  1. 用户在范围内的最后一个日期('2020-01-31')之前进行交易并且至少进行超过 1 笔交易
  2. 并且用户至少在日期范围(“2020-01-01”至“2020-01-31”)内进行了 1 笔交易

关于 mysql 可以用此查询描述条件

HAVING SUM(createdAt <= '2020-01-31') > 1
           AND SUM(createdAt BETWEEN '2020-01-01' AND '2020-01-31')

在 tableau 我做了这个

[![在此处输入图片描述][1]][1]

在第一个过滤器 (createdAt) 上,我设定了日期范围(“2020-01-01”到“2020-01-31”) 在第二个过滤器(createdAt copy)上,我在最后一个范围之前创建了范围(<'2020-01-31') 在过滤器 CNTD(user_id) 上,我使 count distinct 至少为 1.

所以它显示 2223 个用户,而不是当我在 mysql 中检查它时,它显示 1801 个用户,并且 mysql 总是正确的,因为我使用 mysql 并且我是新用户tableau。那么我在这里错过了什么?

编辑:以这个例子为例

  • 用户 1 进行了 2 次交易,12 月 19 日和 1 月 20 日各 1 次
  • 用户 2 在 1 月 20 日进行了 1 笔交易
  • 用户 3 在 12 月 19 日进行了 2 笔交易
  • user4 在 2 月 20 日进行了 2 笔交易
  • user5 在 1 月 20 日进行了 2 笔交易

数据快照

现在,如果您的日期范围是 1 月 20 日(比方说)。如果您希望用户在日期范围结束前(2020 年 1 月 31 日)至少进行两次交易,并且其中至少一次交易应在 2020 年 1 月进行,则 user1 和 user5 满足条件。

在这种情况下进行这样的操作-

Step-1 创建两个 date type 参数(parameter 1parameter 2 分别用于日期范围的开始和结束)

步骤 2 创建一个计算字段 condition,计算方式为

{Fixed [User]: sum(
if [Trans Date]<=[Parameter 2] then 1 else 0 end)}>=2
AND
{FIXED [User]: sum(
IF [Trans Date]<=[Parameter 2] AND 
[Trans Date] >= [Parameter 1] THEN 1 ELSE 0 END)}>=1

只要您的给定条件得到满足,这将评估为 TRUE 请参阅此屏幕截图。

不用说交易日期就是你的创建时间