关于sql排序、排名的…

以前业务需要,要搞个自动递增的序号列,具体见文章《sql查询增加自动递增的序号列》,坦白说,只会用,但始终不能理解。

今天巧了,无意中听了一节课,恍然大悟,原来这是开窗函数中的用法。

对于mysql来说,8.0以后才有的开窗函数....

<开窗函数> over ([PARTITION by<分组列>]  Order by<排序列>)

常用于解决排名的,主要有:row_number() over() 、rank() over() 、dense_rank() over()

select dp,wlmc,ckfl,sl ,
       row_number() over (partition by ckfl order by sl ) rw1,
       rank() over (partition by ckfl order by sl) rw2,
       dense_rank() over (partition by ckfl order by sl) rw3
from uf_kcgl  where sl>1

也许在未来的某一天会发现今天得文章也会错洞百出~~勉之~~~

THE END
分享
二维码
打赏
海报
关于sql排序、排名的…
以前业务需要,要搞个自动递增的序号列,具体见文章《sql查询增加自动递增的序号列》,坦白说,只会用,但始终不能理解。 今天巧了,无意中听了一节课,恍然大……
<<上一篇
下一篇>>