mysql 中如何获取分类平均值的名次? 比如10个班级的平均分,按照班级名称排序,后面跟着名次。

selectclass,avg(score)fromchengjigroupbyclassorderbyclass怎么获取这个班级的平均分排名,不是php循环显示的序号... select class ,avg(score) from chengji group by class order by class
怎么获取这个班级的平均分排名,不是php 循环显示的序号
展开
 我来答
紫仑天玑
2012-07-05 · 萝卜数学关注思维过程
紫仑天玑
采纳数:324 获赞数:888

向TA提问 私信TA
展开全部
建议你用程序来完成。这个涉及计算列排序,排序的多重方式,各个数据库估计写法都不同。
---
如果你硬要用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'

------------------------
lew88
2012-07-05 · TA获得超过485个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:141万
展开全部
顶楼上的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式