我们的任务是在 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?