SQL - 按百分比/合并排名对值进行分组

han*_*olo 3 sql t-sql scoring ranking

我有多个包含公司/属性名称和排名的表。

在此处输入图片说明

我想编写一段代码,它允许根据与表格总分相关的分数的百分位数将一系列分数放入特定的组中。我提供了一个非常简单的用例来演示我正在寻找的内容,将一组 10 家公司分成 5 组,但我想对其进行扩展,以便将这 5 组应用于具有多行的数据集,而无需指定值在 CASE 语句中。

在此处输入图片说明

Vam*_*ala 5

您可以使用NTILE根据分数将数据分为 5 个桶。但是,如果数据不能分成相等数量的 bin 或如果存在关系,则其中一个组将拥有更多成员。

SELECT t.*, NTILE(5) OVER(ORDER BY score) as grp
FROM tablename t
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关 NTILE 的更多信息