sql 取出每个分组 最大 的数据,最后再按从大到小排序

像下面 我想获取表中 男女中成绩最好的学生

获取按照性别分类的最大值,

select *

from

user u left join user e

on u.gender = e.gender and u.score < e.score

where

e.score is null

这个样子查询出来的是

然后我们想要 男女生分组,想要两条,就加上group by gender

select * from user u left join user e on u.gender = e.gender and u.score < e.score where e.score is null group by gender

我们还想按照从大到小排序。先是100,再是98,那么就再加上 order by score desc

select u.* from user u left join user e on u.gender = e.gender and u.score < e.score where e.score is null group by gender order by score desc

结果就是我们想要的

最后给一个数据库的在线编辑 网站,但当然是 根据他给的表,咱们去做各种场景的测试,写各种场景的SQL语句了

http://sample.jimstone.com.cn/xsql/TestSQL/9.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值