Mysql组最后一行

Mysql组最后一行,mysql,Mysql,我有这样一个数据库表: id date value minute 1 20100201 00:00:01.909 xxx 0 2 20100201 00:00:02.408 xxx 0 3 20100201 00:01:02.412 xxx 1 4 20100201 00:01:02.909 xxx 1 5 201002

我有这样一个数据库表:

id     date                     value    minute
1      20100201 00:00:01.909    xxx      0   
2      20100201 00:00:02.408    xxx      0
3      20100201 00:01:02.412    xxx      1 
4      20100201 00:01:02.909    xxx      1 
5      20100201 00:01:02.921    xxx      1   
6      20100201 00:01:02.955    xxx      1
7      20100201 00:02:01.903    xxx      2
8      20100201 00:02:25.332    xxx      2
9      20100201 00:03:12.003    xxx      3
10     20100201 00:04:12.003    xxx      4

我希望结果是:

id    date                      value1   minute
1      20100201 00:00:01.909    xxx      0   
2      20100201 00:00:02.408    xxx      0
3      20100201 00:01:02.412    xxx      1
6      20100201 00:01:02.955    xxx      1
7      20100201 00:02:01.903    xxx      2
8      20100201 00:02:25.332    xxx      2
9      20100201 00:03:12.003    xxx      3
我想查询它并返回id,每个分钟返回第一个和最后一个数字,如果只有1条记录,则每分钟返回1条记录(因此上面的id为1,2,3,6,7,8,9)

我尝试过使用group,通过id ASC排序-group by minute,但它似乎在分组后排序,所以这不起作用

有人有什么想法吗?我真不敢相信这是办不到的

试试这个查询-

SELECT t1.* FROM test_table t1
  JOIN (
    SELECT MIN(id) min_id, MAX(id) max_id FROM test_table
      GROUP BY TIME_TO_SEC(TIME(date)) DIV 60) t2
  ON t1.id = t2.min_id OR t1.id = t2.max_id
如果
date
字段不是日期时间或时间戳,则应修改GROUP BY。
此外,我建议您按精确的分钟分组(例如,按年分组、一年中的天、一天中的分钟)。

为什么预期结果中没有id=10?我真的怀疑您仅通过一次查询就可以得到预期的结果…非常感谢Devart。你的答案很完美。你是最棒的!!或者这个;-)