COUNT_IF 函数

功能描述

COUNT_IF 函数用于计算表达式中值为 true 的行数。该函数可以处理任意返回布尔值的表达式,并返回一个 bigint 类型的数值结果。需要注意的是,null 值不会影响计数结果。

语法格式

COUNT_IF([DISTINCT] expr1)

参数说明

  • expr1: 需要计算的布尔表达式。返回值为 true 或 false 的任意表达式。

返回结果

  • 返回值为 bigint 类型,表示表达式为 true 的行数。
  • 如果使用 DISTINCT 关键字,则只计算不同的 true 值,重复的 true 值只计算一次。

使用示例

示例 1计算不同的 true 值数量

SELECT count_if(col % 2 = 0) FROM VALUES (NULL), (0), (1), (2), (2), (3) AS tab(col);
+-----------------------+
| count_if(col % 2 = 0) |
+-----------------------+
| 3                     |
+-----------------------+

示例 2:结合DISTINCT使用

SELECT count_if(DISTINCT col % 2 = 0) FROM VALUES (NULL), (0), (1), (2), (2), (3) AS tab(col);
+--------------------------------+
| count_if(DISTINCT col % 2 = 0) |
+--------------------------------+
| 1                              |
+--------------------------------+

示例 3:计算 null 值的数量

SELECT count_if(col IS NULL) FROM VALUES (NULL), (0), (1), (2), (3) AS tab(col);
+-------------------------+
| count_if((col) IS NULL) |
+-------------------------+
| 1                       |
+-------------------------+

注意事项

  • COUNT_IF 函数仅适用于返回布尔值的表达式。
  • 使用 DISTINCT 关键字时,确保表达式返回的值可以区分重复的 true 值。
  • null 值不会影响计数结果。

联系我们
预约咨询
微信咨询
电话咨询