在我们的应用中,我们收集有关汽车发动机性能的数据 - 基本上是基于发动机类型,运行它的车辆和发动机设计的发动机性能的源数据.目前,新行插入的基础是发动机开关期; 我们根据引擎状态从活动状态到非活动状态的变化监控性能变量,反之亦然.相关engineState表格如下所示:
+---------+-----------+---------------+---------------------+---------------------+-----------------+
| vehicle | engine | engine_state | state_start_time | state_end_time | engine_variable |
+---------+-----------+---------------+---------------------+---------------------+-----------------+
| 080025 | E01 | active | 2008-01-24 16:19:15 | 2008-01-24 16:24:45 | 720 |
| 080028 | E02 | inactive | 2008-01-24 16:19:25 | 2008-01-24 16:22:17 | 304 |
+---------+-----------+---------------+---------------------+---------------------+-----------------+
Run Code Online (Sandbox Code Playgroud)
对于特定分析,我们希望基于行的分钟粒度来分析表内容,而不是基于活动/非活动引擎状态的当前基础.为此,我们考虑创建一个简单的productionMinute表,在我们分析的时间段内每分钟都有一行,productionMinute并engineEvent在每个表的日期时间列上连接和表.因此,如果我们的分析时间是从2009年12月1日到2010年2月28日,我们将创建一个包含129,600行的新表,每三天一个月的每一分钟一行.productionMinute表格的前几行:
+---------------------+
| production_minute |
+---------------------+
| 2009-12-01 00:00 |
| 2009-12-01 00:01 |
| 2009-12-01 00:02 |
| 2009-12-01 …Run Code Online (Sandbox Code Playgroud)