AB两个字段,怎么写sql生成C字段,使里面的数根据B字段分类,根据A字段排序写1234.。
1个回答
展开全部
楼主好,楼主所需要的功能是分组后组内排序功能吧?你可以使用SQL的分析函数和开窗函数,很简单就可以实现:
select *,row_number() over (partition by B order by A) as c from table
上述SQL即可满足楼主。row_number()函数是生成序列码,然后进行开窗,开窗指的是一个范围内进行计算,即over开窗函数,中间写的partition by 是按照什么粒度进行分组,order by则是按照什么排序计算,整合起来就是排序在前面的会先生成序列码,一个组内进行生成即可。
select *,row_number() over (partition by B order by A) as c from table
上述SQL即可满足楼主。row_number()函数是生成序列码,然后进行开窗,开窗指的是一个范围内进行计算,即over开窗函数,中间写的partition by 是按照什么粒度进行分组,order by则是按照什么排序计算,整合起来就是排序在前面的会先生成序列码,一个组内进行生成即可。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询