如果我们有这样的数据,我在将所有事务数据分组为月份和每月项目计数后得到:
cust_id item_month item_count
64 1 1
64 2 1
64 3 1
65 1 1
66 2 1
66 3 2
原来的表是
cust_id item_name transaction_date
64 bag 2017-01-01
64 bag 2017-02-05
64 bag 2017-03-07
65 bottle 2017-01-10
66 gloves 2017-02-11
66 bag 2017-03-05
66 kite 2017-03-02
我只想得到在3个月内(1、2和3)每个月的客户id,我们的item\u count>=1。我们怎么知道?基本上在上述情况下,答案是64。
SELECT
t1.cust_id
(SELECT
cust_id
FROM
table
WHERE item_count>=1 AND item_month=1) t1
JOIN
(SELECT
cust_id
FROM
table
WHERE item_count>=1 AND item_month=2) t2
ON t1.cust_id=t2_cust_id
JOIN
(SELECT
cust_id
FROM
table
WHERE item_count>=1 AND item_month=3) t3
ON t1.cust_id=t3.cust_id
有没有更有效的方法?也许直接从交易数据?
2条答案
按热度按时间hgb9j2n61#
我不明白你从哪里得到64。。但以下是您如何在3个月内找到有价值的客户。
ep6jt1vc2#
尝试此查询: