mysql 中如何获取分类平均值的名次? 比如10个班级的平均分,按照班级名 ...

发布网友

我来回答

2个回答

热心网友

建议你用程序来完成。这个涉及计算列排序,排序的多重方式,各个数据库估计写法都不同。
---
如果你硬要用sql完成可以用如下方式:
记住只在mysql里能这么写。幸好你的是mysql
---------

SELECT M.class,M.AvgS,M.pm
FROM
(
SELECT A.*,@rank:=@rank+1 as pm
FROM
(
SELECT class,avg(score) as AvgS FROM test.chengji GROUP BY class ORDER BY AvgS DESC
) A ,(SELECT @rank:=0) B
) M
ORDER BY M.class

--------
pm 代表排名
---
结果类似:
class AvgS pm
-----------------------

'1', '47.0000', '1'
'2', '12.0000', '3'
'5', '38.5000', '2'

------------------------

热心网友

顶楼上的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com