为了账号安全,请及时绑定邮箱和手机立即绑定

请问怎么查询一个班成绩排名前10%的同学名单呢?要使用子查询么?

比如table包含id,name,score三项

正在回答

2 回答

select  id  排名, name 姓名,score 分数 from table where order by  score  limit 0, count(*)*0.1;

0 回复 有任何疑惑可以回复我~
#1

怒放的生命012

count(*)0.1改成(select count(*) from table)*0.1 不知道可以乘以0.1不,你试试
2016-07-26 回复 有任何疑惑可以回复我~
#2

怒放的生命012

where也去掉
2016-07-26 回复 有任何疑惑可以回复我~

你可以按score排序好,然后用limit就好!

0 回复 有任何疑惑可以回复我~
#1

帅踢锅 提问者

limit 0, round(count(id)*0.05)这样不行啊?子查询好像又不能用到这里,求指教
2015-08-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

请问怎么查询一个班成绩排名前10%的同学名单呢?要使用子查询么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信