选择您的 Cookie 首选项

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

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

COUNT 窗口函数

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

COUNT 窗口函数对由表达式定义的行计数。

COUNT 函数具有两个变体。COUNT(*) 对目标表中的所有行计数,无论它们是否包含 null 值。COUNT(expression) 计算某个特定列或表达式中带非 NULL 值的行的数量。

语法

COUNT ( * | [ ALL ] expression) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )

参数

expression

对其执行函数的目标列或表达式。

ALL

利用参数 ALL,该函数可保留表达式中的所有重复值以进行计数。ALL 是默认值。DISTINCT 不受支持。

OVER

指定聚合函数的窗口子句。OVER 子句将窗口聚合函数与普通集合聚合函数区分开来。

PARTITION BY expr_list

依据一个或多个表达式定义 COUNT 函数的窗口。

ORDER BY order_list

对每个分区中的行进行排序。如果未指定 PARTITION BY,则 ORDER BY 使用整个表。

frame_clause

如果 ORDER BY 子句用于聚合函数,则需要显式框架子句。框架子句优化函数窗口中的行集,包含或排除已排序结果中的行集。框架子句包括 ROWS 关键字和关联的说明符。请参阅 窗口函数语法摘要

数据类型

COUNT 函数支持所有参数数据类型。

COUNT 函数支持的返回类型是 BIGINT。

示例

以下示例从数据窗口的开头显示销售 ID、数量和所有行的计数:

select salesid, qty, count(*) over (order by salesid rows unbounded preceding) as count from winsales order by salesid; salesid | qty | count ---------+-----+----- 10001 | 10 | 1 10005 | 30 | 2 10006 | 10 | 3 20001 | 20 | 4 20002 | 20 | 5 30001 | 10 | 6 30003 | 15 | 7 30004 | 20 | 8 30007 | 30 | 9 40001 | 40 | 10 40005 | 10 | 11 (11 rows)

有关 WINSALES 表的说明,请参阅窗口函数示例的示例表

以下示例从数据窗口的开头显示销售 ID、数量和非 null 行的计数。(在 WINSALES 表中,QTY_SHIPPED 列包含一些 NULL 值。)

select salesid, qty, qty_shipped, count(qty_shipped) over (order by salesid rows unbounded preceding) as count from winsales order by salesid; salesid | qty | qty_shipped | count ---------+-----+-------------+------- 10001 | 10 | 10 | 1 10005 | 30 | | 1 10006 | 10 | | 1 20001 | 20 | 20 | 2 20002 | 20 | 20 | 3 30001 | 10 | 10 | 4 30003 | 15 | | 4 30004 | 20 | | 4 30007 | 30 | | 4 40001 | 40 | | 4 40005 | 10 | 10 | 5 (11 rows)

下一主题:

CUME_DIST

上一主题:

AVG

本页内容

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