首页 > 解决方案 > 如果有空值,列的聚合函数?

问题描述

如果我在具有如下数值的列上运行聚合函数:

Select Name, count(Miles) as number from tbl

如果某些名称null在列中有值Miles,将如何处理?

如果它是一个具有其他值的名称,则它不会被计算在内,但如果它是只有空值且没有数字的名称,它将如何显示在输出中?

标签: sqlpresto

解决方案


Select Name, count(Miles) as number from tbl

我假设您... GROUP BY Name的查询中也有。

如果它是一个具有其他值的名称,则它不会被计算在内,但如果它是只有空值且没有数字的名称,它将如何显示在输出中?

它将以 0 计数包含在输出中。

例子:

presto:default> SELECT name, count(value)
             -> FROM (VALUES ('a', 1), ('b', NULL)) t(name, value)
             -> GROUP BY name;
 name | _col1
------+-------
 b    |     0
 a    |     1
(2 rows)

(在 Presto 327 上验证)


推荐阅读