窗口函数ntile()

一直没实际的需求而使用ntile(),今天看了下,就是按序号分组的意思。

还是以student表为例

select ntile(3) over (order by score desc) as zu,
       name,
       score,
       province
from student

image

一共13行数据,分三组,第一组就是5;

那我们看分成五组结果如何呢?

image

分成五个组,前面1,2,3组是三个,后面两个组是2个。

还可以使用ntile() over (partition by province order by score desc),先按province分再分组

image

原文地址:https://www.cnblogs.com/cnmarkao/p/3756876.html