我在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
请帮助我很高兴..
答案 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)))