根据大小分类
字段A为数值型,里面有很多数据
大小排名前3的分成一类,
如何写语句呢?
case when 语句 then '前3'
else '其他' end
如何写when后面的语句满足A是前3大的条件
select a,case when b<=3 then '前三' else '其他' end as b from ( select a, row_number()over(order by a desc) as b, --大到小排名 from table where ... ) t
(case when ROW_NUMBER()over(order by 数值A desc) < 4 then '等级一' else '等级二' end)
个人意见,希望有所帮助
select case when rn<=3 then '一类' else '其他' end from
(select A,row_number() over(order by A desc) as rn from tab) as xx
建议先做一个子查询,子查询先排序并增加一列排序序号,然后再查询的时候用序号字段来判断前三和其他