如何在sql排序后给排好的数据加序号

select 学号,日期,row_number() over(partition by 学号 order by  学号) from A表;
Mysql利用用户变量rowno获取排序后的序号,相当于Oracle的伪列
select id,score,(@rowno:=@rowno+1) as rowno from test,(select (@rowno:=0)) b order by score desc;
注:@rowno:=0,用@定义,表示rowno变量的初始值为0。

--组内排序
SELECT id,te FROM test ORDER BY te DESC,id DESC;

--组内排序加自动列(序号-相当于表的行号,从1开始)
SELECT id,te,(@rowno:=@rowno+1) AS rowno FROM test,(SELECT (@rowno:=0)) b ORDER BY te DESC,id DESC;

--组内排序加自动列(序号-每组从1开始)
SELECT id,te,rank FROM
(SELECT t.id,t.te,@rownum:=@rownum+1,IF(@i=t.te,@rank:=@rank+1,@rank:=1) AS rank,@i:=t.te FROM
(SELECT id,te FROM test ORDER BY te ASC,id DESC) t ,(SELECT @rownum :=0 , @i := NULL ,@rank:=0) a
) result ; 
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值