无法弄清楚如何在MySQL中生成子采样视图

时间:2016-07-20 11:49:06

标签: mysql sql

我目前有一个生成此数据的视图:

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中做了什么来提供一些见解。

帮助!

1 个答案:

答案 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;

但是,这不会在您的问题中产生结果。目前尚不清楚样本数据与预期结果之间的关系。