我正在尝试将数据分组给我,他们只想要每个ID的最后一条记录,我该怎么办?
在访问中以这种方式解决我的问题:
SELECT Table1.id, Last(Table1.status) AS LastStatus, Last(Table1.date) AS LastDate
FROM Table1
GROUP BY Tabele1.id;
我的表
____________________________
| ID | STATUS | DATE |
|123456| 1 | 15/04/2016 |
|123456| 2 | 16/04/2016 |
|123456| 3 | 17/04/2016 |
|123456| 1 | 18/04/2016 |
|654321| 3 | 19/04/2016 |
|654321| 4 | 20/04/2016 |
|654321| 2 | 21/04/2016 |
|98765 | 3 | 22/04/2016 |
|98765 | 1 | 23/04/2016 |
|98765 | 2 | 24/04/2016 |
|98765 | 3 | 25/04/2016 |
------------------------------
所需结果是每个ID的最后一条记录。
____________________________
| ID | STATUS | DATE |
|123456| 1 | 18/04/2016 |
|654321| 2 | 21/04/2016 |
|98765 | 3 | 25/04/2016 |
------------------------------
答案 0 :(得分:0)
您可以在子查询中使用where in,返回id
的最大日期select * from my_table
where (id, date) in ( select id, max(date)
from my_table
group by id )
order by date
或者如果您需要按状态订购
select * from my_table
where (id, date) in ( select id, max(date)
from my_table
group by id )
order by status