选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

NTILE 窗口函数

聚焦模式
NTILE 窗口函数 - Amazon Redshift

NTILE 窗口函数将分区中已排序的行划分为大小尽可能相等的指定数量的已排名组,并返回给定行所在的组。

语法

NTILE (expr) OVER ( [ PARTITION BY expression_list ] [ ORDER BY order_list ] )

参数

expr

排名组的数目,并且必须为每个分区生成一个正整数值(大于零)。expr 参数不得可为 null。

OVER

一个指定窗口分区和排序的子句。OVER 子句不能包含窗口框架规范。

PARTITION BY window_partition

可选。OVER 子句中每个组的记录范围。

ORDER BY window_ordering

可选。一个对每个分区中的行进行排序的表达式。如果忽略 ORDER BY 子句,则排名行为相同。

如果 ORDER BY 未生成唯一顺序,则行的顺序是不确定的。有关更多信息,请参阅 窗口函数的唯一数据排序

返回类型

BIGINT

示例

以下示例将于 2008 年 8 月 26 日购买 Hamlet 门票所付价格划分到四个排名组中。结果集为 17 个行,几乎均匀地划分到排名 1 到 4 中:

select eventname, caldate, pricepaid, ntile(4) over(order by pricepaid desc) from sales, event, date where sales.eventid=event.eventid and event.dateid=date.dateid and eventname='Hamlet' and caldate='2008-08-26' order by 4; eventname | caldate | pricepaid | ntile -----------+------------+-----------+------- Hamlet | 2008-08-26 | 1883.00 | 1 Hamlet | 2008-08-26 | 1065.00 | 1 Hamlet | 2008-08-26 | 589.00 | 1 Hamlet | 2008-08-26 | 530.00 | 1 Hamlet | 2008-08-26 | 472.00 | 1 Hamlet | 2008-08-26 | 460.00 | 2 Hamlet | 2008-08-26 | 355.00 | 2 Hamlet | 2008-08-26 | 334.00 | 2 Hamlet | 2008-08-26 | 296.00 | 2 Hamlet | 2008-08-26 | 230.00 | 3 Hamlet | 2008-08-26 | 216.00 | 3 Hamlet | 2008-08-26 | 212.00 | 3 Hamlet | 2008-08-26 | 106.00 | 3 Hamlet | 2008-08-26 | 100.00 | 4 Hamlet | 2008-08-26 | 94.00 | 4 Hamlet | 2008-08-26 | 53.00 | 4 Hamlet | 2008-08-26 | 25.00 | 4 (17 rows)

下一主题:

PERCENT_RANK

上一主题:

NTH_VALUE

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。