2021-03-18

   mysql 中查询某个分类下的最大的前3条的数据怎么查询

1,这个问题对我来说是有点复杂的,先把答案的例子发下。

SELECT distinct supplier_id ,price FROM ces_contract_back_money a
WHERE (SELECT count(*) FROM ces_contract_back_money b WHERE b.supplier_id=a.supplier_id AND b.price>a.price  )<5
ORDER BY supplier_id asc,price desc  

  这个是查询前5条的数据,这个distinct ,这个数据是去重的,里层的这个数据库语句是对所有的数据相比较,无论是a 表,还是c 表,其实都是一个表,那么这样写的目的就是把这两个表的数据进行对比,取出最大的前五条的数据。还有这个数据库语句里面有个两个排序,一个根据是供应商id 进行的升序排序,还有一个是根据金额的降序的排序。这两个一起进行排序。最重要的就是里面那层的数据库语句,这个数据库语句通过比对表中的所有数据拿到最大的前4个数据,最终解决了这个问题。

这个文章参考了   https://blog.csdn.net/zhichao2001/article/details/6068893   ,非常感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值