【MySQL】临时变量应用于分组排序

临时变量用@表示,全局变量用户@@表示

Oracle和SQL server有row number over partition by 函数,可用于实现分组排序。但MySQL没有,实现分组排序或累加计算时,需要通过临时变量@实现。

例如 当前SCORE表记录了每个学生的各科成绩,获取每个学生的最差学科成绩

user_id subject score
赵三 数学 89
赵三 语文 91
赵三 英语 46
李四 数学 62
李四 语文 65
李四 英语 96
select
a.user_id,a.subject,a.score,
# 如果是同一个用户(同一个组),在之前的序号+1,不是同一个,序号=1
if(@g=a.user_id,@rank:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值