发布网友
共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'
------------------------
热心网友
顶楼上的