通过基于分钟跳过记录来从表中获取数据

时间:2015-06-12 06:09:17

标签: mysql

我在mysql中有tracklog表,其中包含各种字段,包括datetime字段。

tracklog_data

id  pos_datetime
1   2015-05-05 12:08:50 
2   2015-05-05 12:08:30 
3   2015-05-05 12:07:40
4   2015-05-05 12:07:20
5   2015-05-05 12:07:10  
6   2015-05-05 12:06:05
7   2015-05-05 12:06:01
8   2015-05-05 12:05:30
9   2015-05-05 12:05:10
10  2015-05-05 12:04:30
11  2015-05-05 12:04:20
12  2015-05-05 12:03:50 
13  2015-05-05 12:03:20
14  2015-05-05 12:02:50
15  2015-05-05 12:02:40
16  2015-05-05 12:02:10
17  2015-05-05 12:01:40
18  2015-05-05 12:01:10
19  2015-05-05 12:01:05
20  2015-05-05 12:00:30
21  2015-05-05 11:59:30

我想要数据分钟,这意味着如果有两个记录具有相同的分钟,那么只有第一个记录应该跳过具有相同小时和分钟的所有其他记录。然后它也应该跳过接下来的两分钟记录并转到第三分钟并在

上进一步做同样的事情

所以例如我需要timelimit跳过是2分钟假设

id  pos_datetime
1   2015-05-05 12:08:30
8   2015-05-05 12:05:30
14  2015-05-05 12:02:50
21  2015-05-05 11:59:30

请帮助我很高兴..

2 个答案:

答案 0 :(得分:0)

您可以使用DATE(),HOUR(),MINUTE()。

例如:

SELECT Id, Pos_Datetime
FROM Dummy 
WHERE Id IN (
    SELECT MIN(Id)
    FROM Dummy
    GROUP BY DATE(Pos_Datetime), HOUR(Pos_Datetime), MINUTE(Pos_Datetime));

答案 1 :(得分:0)

SELECT id, pos_datetime
FROM mytable 
WHERE id IN (
SELECT MIN(id)
FROM mytable 
GROUP BY 
ROUND(UNIX_TIMESTAMP(pos_datetime)/(1 * 60)))

Demo here