Hive、MySQL添加逻辑自增列

Hive实现自增列:

select row_number() over(partition by 1 order by 1) as rn, Score

from Scores

这就体现了row_number() over 这个窗口分析函数的灵活性,partition by 1 把每一条记录都当做一个分区,然后在对每一条记录进行从1开始编号



MySQL实现自增列:

用于在写SQL的时候实现自增列,网上看了很多,运行时都是有些小问题,所以自己经过测试总结一下一段小代码

select @rownum := @rownum + 1 as Rank, Score

from (select distinct @rownum := 0, Score from Scores order by Score desc) as b

有的地方写在SQL语句前先加一句:set @rownum := 0,应该是用来初始化,但是在我执行的时候会报错,所以我的做法是在其他语句中找个适当的插入@rownum :=0 进行初始化,这样最终达到的效果一样

如果大家有什么其他好的方法可以交流

你可能感兴趣的:(Hive、MySQL添加逻辑自增列)