count_if:条件计数
速查结论
count_if(expr) 是 Spark SQL 中用于统计布尔表达式中 TRUE 值的数量的聚合函数。
语法
count_if(expr)
参数说明
| 参数 | 说明 |
|---|---|
| expr | 布尔表达式。当表达式结果为 TRUE 时计入 |
示例
> SELECT count_if(col % 2 = 0) FROM VALUES (NULL), (0), (1), (2), (3) AS tab(col);
2
> SELECT count_if(col IS NULL) FROM VALUES (NULL), (0), (1), (2), (3) AS tab(col);
1
常见报错与避坑指南
- 只有 TRUE 才计入:
count_if只统计表达式结果为true的行,false和NULL均不计入。这与count的行为一致(NULL 被忽略)。 - 与
sum(CASE WHEN)的关系:count_if(condition)等价于sum(CASE WHEN condition THEN 1 ELSE 0 END)或count(CASE WHEN condition THEN 1 END),但语法更简洁直观。
Since: 3.0.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
