COUNT_IF 函数
功能描述
COUNT_IF
COUNT_IF
函数用于计算表达式中值为
TRUE
TRUE
的行数。该函数可以处理任意返回布尔值的表达式,并返回一个
BIGINT
BIGINT
类型的数值结果。需要注意的是,
NULL
NULL
值不会影响计数结果。
语法格式
COUNT_IF([DISTINCT] expr1)
参数说明
expr1
expr1
: 需要计算的布尔表达式。返回值为 TRUE
TRUE
或 FALSE
FALSE
的任意表达式。
返回结果
- 返回值为
BIGINT
BIGINT
类型,表示表达式为 TRUE
TRUE
的行数。
- 如果使用
DISTINCT
DISTINCT
关键字,则只计算不同的 TRUE
TRUE
值,重复的 TRUE
TRUE
值只计算一次。
使用示例
示例 1:计算不同的
TRUE
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
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
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
COUNT_IF
函数仅适用于返回布尔值的表达式。
- 使用
DISTINCT
DISTINCT
关键字时,确保表达式返回的值可以用于区分重复的 TRUE
TRUE
值。
NULL
NULL
值不会影响计数结果。