日期:2014-05-18  浏览次数:20428 次

排名,我又来发贴了。
SQL code

select dense_rank() over(order by c ) as c  ,* from #a;

select rank() over (order by c) as c ,* from #a;

select ntile(4) over (order by c) as c ,* from #a;

select row_number () over(  order by c) as c ,* from #a;



,这些排名的函数,

NTILE,ROW_NUMBER()这两个貌似没啥子区别,唯一不同的就是NTILE可以控制输出的数字大小。

另外,OVER(PARTITION BY)这个鸟东西到底有啥作用,用了,一下,不知道它的结果是怎么来的。
尼玛 来个高手解释一下。

------解决方案--------------------
探讨

引用:
OVER(PARTITION BY)

简单说就是:实现分组排名PARTITION BY 分组字段


SQL code


select row_number() over(partition by c order by c) as a ,* from #a

select row_number () over(order by c ) as a ,* ……