- 类别:
/sql-reference/functions-aggregation`(通用)、:doc:/sql-reference/functions-window`
COUNT_IF¶
返回满足条件的记录数,如果没有记录满足条件,则返回 NULL。
- 另请参阅:
语法¶
聚合函数
窗口函数
有关 window_frame 语法的详细信息,请参阅 窗口函数的语法和用法。
实参¶
condition该条件是一个应计算为 BOOLEAN 值(True、False 或 NULL)的表达式。
expr1要分区的列(如果想将结果拆分为多个窗口)。
expr2要对每个窗口进行排序的列。请注意,这是与对最终结果集进行排序的 ORDER BY 子句分开的。
返回¶
如果函数没有返回 NULL,返回值的数据类型为 NUMBER。
使用说明¶
当此函数作为具有 ORDER BY 子句的窗口函数调用时,必须指定窗口框架。如果未指定窗口框架,则使用以下默认框架:
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW有关窗口框架的更多信息(包括语法、使用说明和示例),请参阅 窗口函数的语法和用法。
示例¶
本节中的示例演示了如何使用 COUNT_IF 函数。
以下语句设置了一个表以用于示例:
以下示例为条件传入 TRUE,这将返回表中所有行的计数:
以下示例返回 J_COL 中的值大于 I_COL 中的值的行数:
请注意,在上面的示例中,计数不包括具有 NULL 值的行。正如 三元逻辑 中所解释的那样,当比较运算符的任何操作数为 NULL 时,结果为 NULL,这不满足 COUNT_IF 指定的条件。
以下示例返回不包含任何 NULL 值的行数。