首页 > 解决方案 > 按日期时间范围分组 - MySql

问题描述

好吧,我有一个表,其中有一些列是重复的,但时间不完全相同,我需要做一个分组,范围为 2 小时。

请注意,所有标记为黑色的字段都重复,但 datetime 字段可能会相差几分钟,因此我需要在两个小时的间隔内加入每个人来组成一个组。

在此处输入图像描述

它会是这样的:SELECT * FROM tabela GROUP BY sinistro, prefixo, data AND horaIfull_oco range 2h

而且在结果中,如果可能的话,列必须带有所有的 id ,例如:id1, id2

他将加入所有最多相隔两个小时的人。如果有人知道该怎么做,我已经研究过并没有发现任何东西。

标签: mysqldatabase

解决方案


GROUP BY FLOOR(UNIX_TIMESTAMP(horaIfull_oco) / 7200)

7200是 2 小时。)

如果要获取每个组的基准时间:

FROM_UNIXTIME(
   FLOOR(UNIX_TIMESTAMP(horaIfull_oco) / 7200)
              , 7200)

这种技术可以通过改变来适应任何有规律的时间间隔7200


推荐阅读