我們的任務是在ClickHouse中運行一批~20000個查詢並將結果存儲到CSV文件中。每個查詢都是返回單個數字的count()聚合。如何使ClickHouse count()函數在零匹配的情況下返回0?
我們這樣做是這樣的:
./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?