我目前有一个生成此数据的视图:
ps_id min max
5017 2016-07-18 22:28:25 2016-07-19 06:23:17
5018 2016-07-18 18:29:06 2016-07-18 18:40:05
5019 2016-07-18 23:31:21 2016-07-19 00:10:07
我尝试创建的视图应该执行以下操作。它应该采取" min"上面给定ps_id的值,它应该找到小时的顶部。以上面第一行的min为例:
2016-07-18 22:28:25 --> 2016-07-18 22:00:00
同样的事情应该发生在" max"上面第一行中的值:
2016-07-19 06:23:17 --> 2016-07-19 06:00:00
然后,我需要视图来生成子系列,这个子系列填补了生成的" min"之间的所有空白。和" max"值,在这种情况下,将产生" min"之间的所有小时的顶部。最重要的时刻:
2016-07-18 22:00:00
和" max"最重要的时刻:
2016-07-19 06:00:00
在所有这些结束时,我需要为每个ps_id生成此视图,它应该如下所示:
ps_id hour_segment
5017 2016-07-18 22:00:00
5017 2016-07-18 23:00:00
5017 2016-07-19 00:00:00
5017 2016-07-19 01:00:00
5017 2016-07-19 02:00:00
5017 2016-07-19 03:00:00
5017 2016-07-19 04:00:00
5017 2016-07-19 05:00:00
5017 2016-07-19 06:00:00
5018 2016-07-18 18:00:00
5019 2016-07-18 23:00:00
5019 2016-07-19 00:00:00
我长期以来一直在反对这个问题,并且真的需要一些聪明的头脑,知道他们在MySQL中做了什么来提供一些见解。
帮助!
答案 0 :(得分:0)
根据您的说明,它听起来像一个简单的group by
:
create view v_table as
select ps_id, min(hour_segment) as `min`, max(hour_segment) as `max`
from t
group by ps_id;
但是,这不会在您的问题中产生结果。目前尚不清楚样本数据与预期结果之间的关系。