mysql 数据库排名实现

声明三个初始变量

@rownum := 0 ,@rowtotal := NULL ,@incrnum := 0

将@rownum +1 ,赋值给 @rownum

@rownum := @rownum + 1 

@rownum := @rownum + 1 AS num_tmp
这一行在下面内容之前,则能实现并列排序。只写这一行的话,输出的排序是顺序排序

@incrnum := CASE
	WHEN @rowtotal = obj.borrowedNum THEN
			@incrnum
	WHEN @rowtotal := obj.borrowedNum THEN
			@rownum
	END AS rownum
SELECT
	obj.STU_NAME,
	obj.CONTACT_INFO,
	obj.borrowedNum,
  @rownum := @rownum + 1 AS num_tmp,
			@incrnum := CASE
	WHEN @rowtotal = obj.borrowedNum THEN
			@incrnum
	WHEN @rowtotal := obj.borrowedNum THEN
			@rownum
	END AS rownum
FROM
	(
		SELECT
			student.STU_NAME,
			student.CONTACT_INFO,
			a.s_c_id borrowedNum,
			@rownum := 0 ,@rowtotal := NULL ,@incrnum := 0
		FROM
			student_class a
		LEFT JOIN student ON a.STU_ID = student.STUDENT_ID
		WHERE
			a.CM_ID IN (129381)
		AND a.SC_STATE IN (119, 120)
		GROUP BY
			a.STU_ID HAVING borrowedNum > 0
		ORDER BY
			borrowedNum DESC
	) AS obj
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值