首页 新闻 会员 周边 捐助

sql本字段内容怎么跟自己比较大小

0
悬赏园豆:50 [已解决问题] 解决于 2022-04-28 16:33

比如 select name ,id from xxx
显示数据为[一,10,二,30,三,40,八,60] 其中name是一,二,三,八,id,是10,30,40,60 ,
八的数据比其余的数据都大,为2,三是第2大那位1,其余为零。如果是并列的比如三,60,八60,它们并列为2,以此类推

借口/*-的主页 借口/*- | 初学一级 | 园豆:10
提问于:2022-04-28 14:35
< >
分享
最佳答案
0

select name ,id from xxx GROUB BY id

收获园豆:50
开心宝贝的爸爸 | 初学一级 |园豆:99 | 2022-04-28 15:00

1,2,0是新的字段呀 group by 不行

借口/*- | 园豆:10 (初学一级) | 2022-04-28 15:11

@借口/*-: 稍微整理下你的问题,比如原始数据是什么样。你想的数据。
name id
一 10
二 30
三 40
八 60
然后呢?
name id

开心宝贝的爸爸 | 园豆:99 (初学一级) | 2022-04-28 15:18

@开心宝贝的爸爸: id里面10,30,40,60 要做判断比较符合条件最大为2第二大的为1其余为0 如果是并列的话60,60,那么都为2 第二大的话30,30 为1

借口/*- | 园豆:10 (初学一级) | 2022-04-28 15:24

@开心宝贝的爸爸: 0,1,2 他们是是做完这个判断新增的字段就不显示原来的id了

借口/*- | 园豆:10 (初学一级) | 2022-04-28 15:29

@开心宝贝的爸爸:显示新增的字段 和那么 里面的数据内容

借口/*- | 园豆:10 (初学一级) | 2022-04-28 15:34

这样的?

开心宝贝的爸爸 | 园豆:99 (初学一级) | 2022-04-28 16:26

@开心宝贝的爸爸: 对的 我写出来了 select a.name,case when
dense_rank()over(order by a.id desc) =1 then '2'when dense_rank()over(order by a.id desc) =2 then '1' else '0' end as id, from xxx a

借口/*- | 园豆:10 (初学一级) | 2022-04-28 16:32

@借口/*-: 下次问数据库问题,可以用excel表格来手动输入一些示例数据。原始数据,你想要的结果,这样一次就能获得您想要的答案了

开心宝贝的爸爸 | 园豆:99 (初学一级) | 2022-04-28 16:39

@开心宝贝的爸爸: 嗯嗯,我下次就这样做 谢谢你

借口/*- | 园豆:10 (初学一级) | 2022-04-28 16:40
其他回答(1)
0

select a.name,case when
dense_rank()over(order by a.id desc) =1 then '2'when dense_rank()over(order by a.id desc) =2 then '1' else '0' end as id, from xxx a

借口/*- | 园豆:10 (初学一级) | 2022-04-28 16:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册