跳至主要内容

在 ClickHouse 中使用过滤聚合

了解如何使用 `-If` 和 `-Distinct` 聚合组合器在 ClickHouse 中使用过滤聚合,以简化查询语法并增强分析。

使用过滤聚合

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

查看 聚合函数组合器 页面以获取更多详细信息。

·1 分钟阅读
    © . This site is unofficial and not affiliated with ClickHouse, Inc.