我正在尝试迁移clickhouse的一个postgres表。以下是我在clickhouse的想法:
CREATE TABLE loads(
country_id UInt16,
partner_id UInt32,
is_unique UInt8,
ip String,
created_at DateTime
) ENGINE=MergeTree PARTITION BY toYYYYMM(created_at) ORDER BY (created_at);
是唯一的这里是一个布尔值0或1。我想知道聚合的计数:country\u id、partner\u id和created\u at,但我也想知道这些负载中有多少是唯一负载。在postgres看来:
SELECT
count(*) AS loads,
count(*) FILTER (WHERE is_unique) AS uniq,
country_id,
partner_id,
created_at::date AS ts
FROM loads
GROUP BY ts, country_id, partner_id
在clickhouse有没有可能,或者我应该重新考虑如何聚合数据?除了count可以得到expr而不是星号之外,我在手册中没有找到任何线索,但是 count(is_unique = 1)
不起作用,只返回与count(*)相同的金额。
1条答案
按热度按时间ac1kyiln1#
我在发帖后几分钟就找到了答案:
祝你好运。