【SQL】SQL 中的 ntile 如何对样本进行划分?

image.png

select
    salary,
    ntile(10) over(
    order by salary desc)
from
    salaries
where
    salary >= 150000

一共36个样本,10等分,有些分了4个样本,有些分了3个样本,具体的分类规则是怎么样的?

阅读 2.1k
1 个回答
✓ 已被采纳

经过一段时间的测试,最终摸索出来了规律:

当样本总数 n 不能被分组数 g 整除时,将会选择小于样本总数 n 的最大能被分组数 g 整除的数字进行分组。

如上例中 36 不能被10 整除,将会选择小于 36 的最大能被10整除的数字 30 进行分组,因此每组包含3个样本。然后从前往后每组补充1个样本至样本总数为36.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题