M.V*_*.V. 3 mysql select unique max
我有这样的表
id | serial_num | version | .....
1 | 1 | 1 | .....
2 | 2 | 1 | .....
3 | 2 | 2 | .....
4 | 3 | 1 | .....
5 | 4 | 1 | .....
6 | 5 | 1 | .....
7 | 5 | 2 | .....
8 | 5 | 3 | .....
Run Code Online (Sandbox Code Playgroud)
现在我想要选择的是获取具有最大版本和唯一serialn_num的行...
结果将是:
id | serial_num | version | .....
1 | 1 | 1 | .....
3 | 2 | 2 | .....
4 | 3 | 1 | .....
5 | 4 | 1 | .....
8 | 5 | 3 | .....
Run Code Online (Sandbox Code Playgroud)
我的SQL有点复杂,这就是为什么我没有通过使用MAX()解决问题...我没有几个左连接等...
有任何想法吗?
最好的问候,谢谢你的时间!
试试这个:
SELECT yourtable.*
FROM yourtable
WHERE (serial_num, version) in (select serial_num, max(version)
from yourtable
group by serial_num)
Run Code Online (Sandbox Code Playgroud)
子查询将返回serial_num的最大版本,因此这将返回serial_num具有最大值的所有行.看到这个小提琴.
| 归档时间: |
|
| 查看次数: |
7221 次 |
| 最近记录: |