1. 程式人生 > >mysql 排序並增加序號,分數相同並列

mysql 排序並增加序號,分數相同並列

IT HERE group by count eve FN mit lec 1=1

1,排序,根據總分 增加序號

表結構:

技術分享圖片

sql:

SET @row=0;
SELECT b.*, @row:=@row+1 rownum FROM (
select *,SUM(a.achievement) as achievementAll from cp_cj as a
where 1=1 GROUP BY a.studentNum order by SUM(a.achievement) DESC limit 0,30
) as b

結果:

技術分享圖片

2,排序,根據總分 增加序號,並且按照總分相同的並列

sql:

select c.* ,ifnull((
select count(*) from
(
select *,SUM(a.achievement) as achievementAll from cp_cj as a
where 1=1 GROUP BY a.studentNum order by SUM(a.achievement) DESC
) as b
where c.achievementAll < b.achievementAll

),0)+1 as rownum from
(
select *,SUM(a.achievement) as achievementAll from cp_cj as a
where 1=1 GROUP BY a.studentNum order by SUM(a.achievement) DESC limit 0,30
) as c

結果:

技術分享圖片

mysql 排序並增加序號,分數相同並列