mysql非占位排名

来源:互联网 发布:知柏地黄丸治疗湿热吗 编辑:程序博客网 时间:2024/05/21 22:22

找了好久的mysql排名解决办法,排名结果:1,2,2,3,4,5,5

看sql吧,相信可以看的懂。是从stackoverflow中找的。

SELECT name,clazz,user_id,class_id,xn,scoreSum,awardedMarks,totalPoint,CASE    WHEN @prev_value = totalPoint THEN @rank_count    WHEN @prev_value := totalPoint THEN @rank_count := @rank_count + 1END AS rank FROM (SELECT au.`NAME` AS NAME,CONCAT(vc.`levelname`,vc.`gradename`,vc.`classname`) AS clazz, cs.user_id,cs.class_id,cs.`xn`,SUM(cs.`project_score`) AS scoreSum,IFNULL(ca.`marks`,0) awardedMarks, (SUM(cs.`project_score`)+IFNULL(ca.`marks`,0)) AS totalPointFROM ct_score cs LEFT JOIN ct_project cp ON cs.`project_id`=cp.`project_id` LEFT JOIN aq_user au ON cs.`user_id`=au.`USER_ID` LEFT JOIN vw_xj_e_class vc ON cs.`class_id`=vc.`classid` LEFT JOIN `ct_awardedmarks` ca ON ca.`class_id`=cs.`class_id` AND ca.`user_id`=cs.`user_id`,(SELECT @prev_value := NULL) f,(SELECT @rank_count := 0)  mWHERE cp.`participant`='Personal' GROUP BY cs.`user_id`) t ORDER BY totalPoint DESC;



0 0
原创粉丝点击