【发布时间】:2021-10-31 05:21:12
【问题描述】:
我想根据消费金额和会员日期计算客户将获得多少购物积分。有些客户不止一次订购,因此是 nth.order 列,但我想使用总支出,不管他们订购了多少次。
他们每消费 1.000.000 就可以获得 1 积分。在特殊季节(2021 年 6 月 1 日 - 2021 年 8 月 31 日),他们将获得三倍积分,但前提是他们的总消费至少为 3.000.000。
它也向下舍入了 1.000.000 的重要性。所以在正常季节消费4.500.000可以获得4分,如果他们的会员是在特殊季节,他们将获得12分。
这是我的示例数据:
| cust.id | start.date | end.date | nth.order | spending |
|---|---|---|---|---|
| 123 | 6/5/2021 | 6/7/2021 | 1 | 500.000 |
| 123 | 6/5/2021 | 6/7/2021 | 2 | 500.000 |
| 456 | 6/8/2021 | 6/9/2021 | 1 | 3.000.000 |
| 789 | 6/11/2021 | 6/13/2021 | 1 | 1.500.000 |
| 789 | 6/11/2021 | 6/13/2021 | 2 | 1.500.000 |
| 789 | 6/11/2021 | 6/13/2021 | 3 | 1.500.000 |
| 000 | 4/1/2021 | 5/5/2021 | 1 | 3.500.000 |
| 000 | 4/1/2021 | 5/5/2021 | 2 | 3.500.000 |
这就是我想要的结果:
| cust.id | start.date | end.date | spending | poin |
|---|---|---|---|---|
| 123 | 6/5/2021 | 6/7/2021 | 1.000.000 | 1 |
| 456 | 6/8/2021 | 6/9/2021 | 3.000.000 | 9 |
| 789 | 6/11/2021 | 6/13/2021 | 4.500.000 | 12 |
| 000 | 4/1/2021 | 5/5/2021 | 7.000.000 | 7 |
客户。 123 得 1 分,因为他们的总支出是 1.000.000,但不是最低 3.000.000,即使是在特殊季节。
客户。 456 得到 9,因为他们的总支出 >= 3.000.000 并且处于特殊季节
cust.789 得到 12,原因与 cust.456 相同
cust.000 只得到 7,因为即使总消费超过 3.000.000,但不是在特殊季节
我已经试过了:
IF start.date >= #6/1/2021#
AND end.date <= #8/31/2021#
AND sum[spending]>=300000
THEN FLOOR([spending]/1000000)*3
ELSEIF start.date>= #1/1/2021#
AND end.date <= #12/31/2021#
THEN FLOOR([spending]/1000000)
ELSE 0
END
但我得到的结果是:
| cust.id | start.date | end.date | spending | poin |
|---|---|---|---|---|
| 123 | 6/5/2021 | 6/7/2021 | 1.000.000 | 0 |
| 456 | 6/8/2021 | 6/9/2021 | 3.000.000 | 9 |
| 789 | 6/11/2021 | 6/13/2021 | 4.500.000 | 3 |
| 000 | 4/1/2021 | 5/5/2021 | 7.000.000 | 6 |
我尝试过这样做:
IF start.date >= #6/1/2021#
AND end.date <= #8/31/2021#
AND sum[spending]>=300000
THEN FLOOR(sum[spending]/1000000)*3
ELSEIF start.date>= #1/1/2021#
AND end.date <= #12/31/2021#
THEN FLOOR(sum[spending]/1000000)
ELSE 0
END
但它一直说“不能混合聚合和非聚合比较或导致'IF'表达式”。我尝试创建包含sum[spending] 的计算字段,将其命名为“总支出”,并做了类似...THEN FLOOR ([total spending]/1000000)... 的操作,但它给出了相同的错误消息。
请帮忙..
【问题讨论】:
标签: tableau-desktop