【发布时间】:2018-03-04 04:07:27
【问题描述】:
我正在尝试为过渡到不同阶段的用户生成多个条形图。以下是我的 user_stage_mappings 表结构
+----+----------+---------+------------------+----------------+
| id | stage_id | user_id | stage_start_date | stage_end_date |
+----+----------+---------+------------------+----------------+
| 1 | 1 | 1 | 2017-12-25 | 2018-01-02 |
| 2 | 2 | 1 | 2018-01-02 | 2018-01-05 |
| 3 | 3 | 1 | 2018-02-05 | |
+----+----------+---------+------------------+----------------+
现在我想为每个阶段绘制 3 个单独的图表,从 2018 年 1 月 1 日 到 2018 年 1 月 7 日(日期可以是任何范围)。所以图表会如下所示。
第一阶段图表:
在 1st 和 2nd 1 月显示条形图,计数为 1,因为当时的想法处于第 1 阶段,其余日子没有条形图。
第 2 阶段图表:
显示 1 月 2nd 到 5th 的条形图,因为当时的想法是在第 2 阶段,而 1 月 1 日、6 日和 7 日没有条形图。
第 3 阶段图表:
显示 1 月 5th 到 7th 的条形图,因为当时该想法处于第 3 阶段,请注意最后阶段没有结束日期,表明该想法是仍处于第 3 阶段。
我已将数据集减少到最低限度,实际数据集将在不同阶段有多个用户。将其编写为 mysql 查询的最佳方式是什么。
我在想可能会在 1 月 1 日到 7 日循环,每次迭代都会计算用户数量。例如,对于 1 月 1 日,获取 1 月 1 日介于 stage_start_date 和 stage_end_date 之间的用户,但不知何故,这并不是最佳选择。
【问题讨论】: