如何解决问:如何配置 ClickHouse 返回 NULL 而不是 0?
假设我创建了一个没有任何记录的表:
create table metric (date Int32) Engine=MergeTree ORDER BY (date);
如果我运行这个查询
select max(date) from metric;
ClickHouse 返回
+-----------+
| max(date) |
+-----------+
| 0 |
+-----------+
1 row in set (0.02 sec)
代替
+-----------+
| max(date) |
+-----------+
| NULL |
+-----------+
1 row in set (0.02 sec)
可以将 ClickHouse 配置为返回 NULL,而不必像这样编写查询:
select max(toNullable(date)) from metric;
解决方法
使用设置 aggregate_functions_null_for_empty:
SELECT max(date)
FROM metric
SETTINGS aggregate_functions_null_for_empty = 1
/*
┌─maxOrNull(date)─┐
│ ᴺᵁᴸᴸ │
└─────────────────┘
*/
或考虑使用 OrNull-combinator:
SELECT maxOrNull(date)
FROM metric
/*
┌─maxOrNull(date)─┐
│ ᴺᵁᴸᴸ │
└─────────────────┘
*/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。