【发布时间】:2016-09-05 08:45:22
【问题描述】:
我在 Mysql 中有这个客户的销售表
+-----------+------------+-------+-----------------+
| Customer | Date | Sales | Date_First_Sale |
+-----------+------------+-------+-----------------+
| Jane | 2016-04-30 | 903 | 2015-02-03 |
| Jane | 2016-02-03 | 51 | 2015-02-03 |
| Jane | 2016-03-09 | 192 | 2015-02-03 |
| John | 2016-05-10 | 64 | 2015-10-03 |
| John | 2016-04-16 | 880 | 2015-10-03 |
| John | 2016-08-17 | 386 | 2015-10-03 |
| John | 2016-03-01 | 503 | 2015-10-03 |
| Juan | 2016-07-06 | 765 | 2015-09-01 |
| Juan | 2016-01-20 | 36 | 2015-09-01 |
| Juan | 2016-03-03 | 928 | 2015-09-01 |
| Momo | 2016-06-29 | 573 | 2015-09-01 |
| Momo | 2016-04-25 | 375 | 2015-09-01 |
| Momo | 2016-06-10 | 999 | 2015-09-01 |
| Nour | 2016-02-28 | 956 | 2015-05-01 |
| Nour | 2016-01-03 | 582 | 2015-05-01 |
| Nour | 2016-08-17 | 366 | 2015-05-01 |
| Philip | 2016-03-22 | 296 | 2015-09-01 |
| Philip | 2016-04-14 | 459 | 2015-09-01 |
| Sylvie | 2016-03-29 | 551 | 2015-09-03 |
| Sylvie | 2016-02-14 | 896 | 2015-09-03 |
+-----------+------------+-------+-----------------+
我需要从今天开始计算过去 12 个月(52 或 53 周,具体取决于日历?)每周计算的客户平均销售额。
现在的问题是,我不想计算在 12 个月内首次购买的客户的平均每周销售额,例如,如果当前日期是 2016-09-01,并且客户做了他在 2016 年 7 月 24 日首次购买,不应以 12 个月为基础计算平均值,而应仅根据 2016 年 7 月 24 日和 2016 年 9 月 1 日之间产生的每周销售额计算平均值。
对于在 12 个月范围内首次购买的客户,则应仅计算 12 个月的平均值。
我一直试图找到这个 SELECT,但由于我对更复杂查询的 MySQL 知识有限,我没有找到任何东西!
提前感谢您的帮助
【问题讨论】:
-
Jane 的 Date_First_Sale 应该是 2016-02-03,但给出的是 2015-04-30。请更新记录
-
如果你要在这里待一段时间,我想你是时候掌握如何提问了。考虑遵循这个简单的两步操作过程: 1. 如果您还没有这样做,请提供适当的 CREATE 和 INSERT 语句(和/或 sqlfiddle),以便我们可以更轻松地复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。
-
@Renaud :检查我更新的答案。它应该工作