mysql 中如何获取分类平均值的名次? 比如10个班级的平均分,按照班级名 ...
发布网友
发布时间:2022-04-23 17:34
我来回答
共2个回答
热心网友
时间:2022-04-09 08:26
建议你用程序来完成。这个涉及计算列排序,排序的多重方式,各个数据库估计写法都不同。
---
如果你硬要用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'
------------------------
热心网友
时间:2022-04-09 09:44
顶楼上的