Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Como usar agregações filtradas no ClickHouse

Como usar agregações filtradas

O ClickHouse oferece uma forma simples e intuitiva de escrever agregações filtradas.

Por exemplo, compare a forma padrão de escrever agregações filtradas em SQL (que funciona perfeitamente no ClickHouse) com a sintaxe abreviada que usa o combinador de função agregada -If combinador de função agregada, que pode ser acrescentado a qualquer função agregada:

--SQL padrão
SELECT
   avg(number)
FILTER (WHERE number > 50)
FROM numbers(100)

--ClickHouse usando um combinador de função agregada
SELECT
   avgIf(number, number > 50)
FROM numbers(100)

Da mesma forma, há o combinador de agregação -Distinct:

--SQL padrão
SELECT avg(DISTINCT number)

--ClickHouse usando um combinador de função agregada
SELECT avgDistinct(number)

Por que as agregações filtradas são importantes? Porque elas permitem implementar o recurso de "comparação de segmentos" em serviços de web analytics. Por exemplo:

WITH
   Region = 'us' AS segment1,
   Browser = 'Chrome' AS segment2
SELECT
   uniqIf(UserID, segment1),
   uniqIf(UserID, segment2)
WHERE segment1 OR segment2

Consulte a página sobre combinadores de funções de agregação na documentação para mais detalhes.

Navigation