【发布时间】:2015-06-19 03:10:56
【问题描述】:
我的目标是找出有多少客户在以下条件之间多次订购。或者换一种说法,客户需要多长时间才能根据这些条件下下一个订单:
- 0 - 12 个月
- 13 - 24 个月
- 25 - 36 个月
- 37+ 个月
表格是按每个订单上的订单项设置的。像这样:
Customer | Item | OrderNumber | OrderDate
1500 item1 5555 2015-02-01
1500 item2 5555 2015-02-01
1500 item34 5255 2014-05-25
1500 item44 4100 2012-12-30
2200 item55 5100 2014-02-15
2200 item1 5100 2014-02-15
3255 item12 5300 2015-03-05
3255 item34 5399 2014-05-01
3255 item22 5399 2014-05-01
因此,如果客户多次订购的时间少于 12 个月,则应计入“0-12 个月”。如果客户花了 18 个月下一个订单,他们将被计入“13-24 个月”,依此类推。
我真的不知道从哪里开始。我可能至少必须拥有:HAVING COUNT(DISTINCT OrderNumber) > 1。我从未使用过LAG,这是我应该使用MySQL 变体来查找序列中的下一个OrderDate 的东西吗?
任何帮助都将不胜感激,至少开始识别所需的查询组件。
【问题讨论】:
-
您是否希望客户计算多次?或者您正在查看订单之间的平均值?最后一个订单呢?包括在内吗?
-
能否提供您发布的原始数据的预期结果表?