【发布时间】:2018-07-29 03:21:00
【问题描述】:
我正在使用 postgresql 来存储来自 RTLS 平台的历史数据。 位置数据不是连续收集的。 history_movements 实现为单个表,如下所示(它是一个简化的表,但足以展示用例):
User Area EnterTime ExitTime
John room1 2018-01-01 10:00:00 2018-01-01 10:00:05
Doe room1 2018-01-01 10:00:00 2018-01-01 10:10:00
John room1 2018-01-01 10:05:00 2018-01-01 10:10:00
Doe room1 2018-01-01 10:20:00 2018-01-01 10:30:00
John room2 2018-01-01 11:00:00 2018-01-01 11:05:00
John room2 2018-01-01 11:08:00 2018-01-01 11:15:00
John room1 2018-01-01 12:00:00 2018-01-01 12:08:00
John room1 2018-01-01 12:10:00 2018-01-01 12:20:00
John room1 2018-01-01 12:25:00 2018-01-01 12:25:00
John room3 2018-01-01 12:30:00 2018-01-01 12:35:00
John room3 2018-01-01 12:40:00 2018-01-01 12:50:00
我正在寻找一种查询方法,显示用户在各个房间中的停留情况,聚合与同一房间相关的数据并计算总体停留时间,如下所示
User Area EnterTime ExitTime ArregateTime
John room1 2018-01-01 10:00:00 2018-01-01 10:10:00 00:10:00
John room2 2018-01-01 11:00:00 2018-01-01 11:05:00 00:15:00
John room1 2018-01-01 12:00:00 2018-01-01 12:25:00 00:25:00
John room3 2018-01-01 12:30:00 2018-01-01 12:50:00 00:20:00
Doe room1 2018-01-01 10:00:00 2018-01-01 10:30:00 00:30:00
查看各种线程,我很确定我必须使用滞后和按函数分区,但不清楚如何。 有什么提示吗? 最好的问候。
【问题讨论】:
-
您好,我认为问题已得到解释,但我不知道如何进行查询,如果不够,我很抱歉或那样
标签: postgresql group-by lag partition-by