sql 相加_利用sql 进行综合排名

5d9deec680304fc510dc94a64a692808.png

目的:当pp表有两组不同数值,求综合排名是不能用求和汇总排名

解释:id,shu1,shu2 是数据源PP表

/*shu1,shu2越大越好,排名越前*/

shu1no是排名值,shu2no是排名值 , sum12no是排名值相加,

Ranking 是综合排名:当sum12no最小值是NO.1

//sql 的排名代码:

select `pp`.*,@shu1No:=@shu1No+1 as shu1No from `pp`,(select @shu1No :=0) init  ORDER BY shu1 deSC

ecdea91a3f54ac509cd855c1ae595f2b.png

///全部代码

/*shu1,shu2越大越好,排名越前*/
select KK.*,@sum12no:=@sum12no+1 as Ranking from 

(
select A.*,B.shu2No,(a.shu1No+b.shu2No) as sum12no from 
(
select `pp`.*,@shu1No:=@shu1No+1 as shu1No from `pp`,(select @shu1No :=0) init  ORDER BY shu1 deSC


)a

left join

(
select `pp`.*,@shu2No:=@shu2No+1 as shu2No from `pp`,(select @shu2No :=0) init  ORDER BY shu2 deSC
)B
on a.id=b.id
)KK

,(select @sum12no :=0) init  ORDER BY sum12no ASC

参考网站MySql语句实现排名_奔跑8蜗牛-CSDN博客_mysql排名语句怎么写

/变形

当要求shu1越小越好,shu2越大越好时,改成select `pp`.*,@shu1No:=@shu1No+1 as shu1No from `pp`,(select @shu1No :=0) init ORDER BY shu1 ASC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值