我按你的代码对列名作一调正。
SELECT a.学校,a.语文,COUNT(b.语文)+1 as 名次 FROM xscj a LEFT join xscj b ON a.语文<b.语文 GROUP BY a.学校,a.语文
产生结果与原表不同,如60分应排在第2位,但它排在第3位了。见图1
如果语句改为:对语文成绩分组
SELECT a.语文,COUNT(b.语文)+1 as 名次 FROM xscj a LEFT join xscj b ON a.语文<b.语文 GROUP BY a.语文
只对对语文成绩分组统计,则产生的名次号与图1不相同,出来的现象是:1、中间出现几个断档,2、又如60分应为第2位,但它排在第3位了,不知为什么?
图1[附件ID:attach_1名称:2011-04-22_174217.jpg]图2[附件ID:attach_2名称:2011-04-22_181037.jpg]