我的表格如下:
id | invoice | newlevel | status
----------------------------------------
1 | 123 | 1 |
2 | 123 | 2 | 2abc
3 | 555 | 1 |
4 | 123 | 3 | 3xyz
5 | 555 | 2 | 2abc
6 | 999 | 5 | 5YYY
我如何
SELECT invoice, MAX(newlevel) AS currentlevel FROM example GROUP BY invoice
当我执行查询时,它返回
id | invoice | currentlevel | status
----------------------------------------------
4 | 123 | 3 |
5 | 555 | 2 |
6 | 999 | 5 | 5YYY
列状态似乎是第一个结果(来自id = 1),其他数据是正确的。
我尝试了所有类似联合多个查询的东西,然后分组或者3级中的subquerys。
更新: @Barmar是对的,这是重复的。我的解决方案是@Kevin Burton的答案in the original post
SELECT *
FROM t1 WHERE (id,rev) IN
( SELECT id, MAX(rev)
FROM t1
GROUP BY id
)