在 ClickHouse 中使用过滤聚合
·一分钟阅读
了解如何使用 ClickHouse 中的过滤聚合,通过 `-If` 和 `-Distinct` 聚合组合器简化查询语法并增强分析能力。
使用过滤聚合
ClickHouse 提供了一种简单直观的方式来编写过滤聚合。
例如,比较编写过滤聚合的标准 SQL 方法(在 ClickHouse 中也能正常工作)与使用 -If
聚合函数组合器的简写语法,该组合器可以附加到任何聚合函数
--standard SQL
SELECT
avg(number)
FILTER (WHERE number > 50)
FROM numbers(100)
--ClickHouse using an aggregate combinator
SELECT
avgIf(number, number > 50)
FROM numbers(100)
类似地,还有一个 -Distinct
聚合组合器
--standard SQL
SELECT avg(DISTINCT number)
--ClickHouse using an aggregate combinator
SELECT avgDistinct(number)
为什么过滤聚合很重要?因为它们允许您在 Web 分析服务中实现“分段比较”功能。例如
WITH
Region = 'us' AS segment1,
Browser = 'Chrome' AS segment2
SELECT
uniqIf(UserID, segment1),
uniqIf(UserID, segment2)
WHERE segment1 OR segment2
查看文档中的聚合函数组合器页面以获取更多详细信息。