如有以下数据表 table
id | create_time | group_id | value |
---|---|---|---|
1 | 2020-11-13 18:28:28 | 1 | Jason01 |
2 | 2020-11-14 18:28:28 | 1 | Jason02 |
3 | 2020-11-15 18:28:28 | 2 | Jason03 |
4 | 2020-11-16 18:28:28 | 1 | Jason04 |
5 | 2020-11-17 18:28:28 | 2 | Jason05 |
需求: 分组查询, 并获取每组最后一个数据
一开始使用
select * from table group by group_id
查询数据格式如下:
id | create_time | group_id | value |
---|---|---|---|
1 | 2020-11-13 18:28:28 | 1 | Jason01 |
3 | 2020-11-15 18:28:28 | 2 | Jason03 |
发现并不是想要的效果
解决办法:
select * from table where id in (select max(id) from table group by group_id)