比如 select name ,id from xxx
显示数据为[一,10,二,30,三,40,八,60] 其中name是一,二,三,八,id,是10,30,40,60 ,
八的数据比其余的数据都大,为2,三是第2大那位1,其余为零。如果是并列的比如三,60,八60,它们并列为2,以此类推
select name ,id from xxx GROUB BY id
1,2,0是新的字段呀 group by 不行
@借口/*-: 稍微整理下你的问题,比如原始数据是什么样。你想的数据。
name id
一 10
二 30
三 40
八 60
然后呢?
name id
@开心宝贝的爸爸: id里面10,30,40,60 要做判断比较符合条件最大为2第二大的为1其余为0 如果是并列的话60,60,那么都为2 第二大的话30,30 为1
@开心宝贝的爸爸: 0,1,2 他们是是做完这个判断新增的字段就不显示原来的id了
@开心宝贝的爸爸:显示新增的字段 和那么 里面的数据内容
这样的?
@开心宝贝的爸爸: 对的 我写出来了 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
@借口/*-: 下次问数据库问题,可以用excel表格来手动输入一些示例数据。原始数据,你想要的结果,这样一次就能获得您想要的答案了
@开心宝贝的爸爸: 嗯嗯,我下次就这样做 谢谢你
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