问题描述
我有一个如下所示的MySQL表:
我想找到一个对表进行分组的查询,如下所示:
详细信息:
a_id
=地图上的分隔区域
is_flag
= 1-如果传感器在区域内/ 0-如果传感器不在区域内
基本上,第一张表描述了每个时间戳我的传感器在哪个区域。
第二张表告诉我传感器停留在每个区域内的时间。
我对每个area_id使用以下查询,并带有union all,以便在单个表中输出传感器在区域之间的移动时间以及每个区域内/下的停留时间。
select t.a_id,min(t.timestamp) starttime,max(t.timestamp) endtime,t.is_flag from(SELECT *,ROW_NUMBER() OVER(ORDER BY a.timestamp) - ROW_NUMBER() OVER(PARTITION BY
a.is_flag ORDER BY a.timestamp) as GRP
FROM tablename a where areas_id=25 ) t
group by is_flag,GRP,a_id
这是我的dbfiddle:https://www.db-fiddle.com/f/5pHiYKyx4yHoirRbGX4kP4/0
我的查询可以满足我的需求,但需要花费一整天的时间。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)