Hive、MySQL添加逻辑自增列
2019-01-11 本文已影响0人
cgkbfrd
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 进行初始化,这样最终达到的效果一样
如果大家有什么其他好的方法可以交流