gpt4 book ai didi

clickhouse - 如何让 ClickHouse count() 函数在零匹配的情况下返回 0?

转载 作者:行者123 更新时间:2023-12-01 13:34:54 26 4
gpt4 key购买 nike

我们的任务是在 ClickHouse 中运行一批约 20000 个查询并将结果存储到 CSV 文件中。每个查询都是一个 count() 聚合,返回一个数字。

我们这样做:

./generate_queries.js | clickhouse-client --multiquery | tr '\n' ',' >> metrics.csv

(是的,尾随逗号,我们会解决这个问题。)

查询示例:
SELECT count(*) FROM merged_data WHERE business_type = 22;

问题在于,如果查询匹配零条记录,ClickHouse 只会不返回任何内容,并且结果 CSV 文件中的记录数与查询数不同。

这可能是 SQL 的标准行为,但是我们如何解决这个问题并使 ClickHouse count() 在零匹配的情况下返回 0?

最佳答案

现在你可以这样做:

SELECT
count() - 1
FROM (
SELECT
business_type
FROM
merged_data
WHERE
business_type = 22
UNION ALL
toUInt64(1)
)

只需更换 toUInt64无论是什么类型的 business_type是。

开发人员已意识到该问题并正在着手解决:
https://github.com/yandex/ClickHouse/issues/51
https://groups.google.com/forum/#!topic/clickhouse/2JS_yzvYAHM

当前的计划是添加从设置中控制此行为的功能。

关于clickhouse - 如何让 ClickHouse count() 函数在零匹配的情况下返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44307934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com