mysql max 多列,MySQL SELECT唯一列,其他列为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 | .....

现在我想要选择的是获取具有最大版本和唯一serialn_num的行…

结果将是:

id | serial_num | version | .....

1 | 1 | 1 | .....

3 | 2 | 2 | .....

4 | 3 | 1 | .....

5 | 4 | 1 | .....

8 | 5 | 3 | .....

我的SQL有点复杂,这就是为什么我没有通过使用MAX()解决问题…我没有几个左连接等…

有任何想法吗?

最好的问候,谢谢你的时间!

解决方法:

试试这个:

SELECT yourtable.*

FROM yourtable

WHERE (serial_num, version) in (select serial_num, max(version)

from yourtable

group by serial_num)

子查询将返回serial_num的最大版本,因此这将返回serial_num具有最大值的所有行.见this fiddle.

标签:mysql,unique,select,max

来源: https://codeday.me/bug/20190725/1536134.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值