Skip to main content
A seleção dinâmica de colunas é um recurso poderoso, mas pouco utilizado, do ClickHouse que permite selecionar colunas usando expressões regulares, em vez de nomear cada coluna individualmente. Você também pode aplicar funções às colunas correspondentes usando o modificador APPLY, o que torna esse recurso extremamente útil para tarefas de análise e transformação de dados. Vamos aprender a usar esse recurso com a ajuda do conjunto de dados de táxis de Nova York, que você também pode encontrar no ClickHouse SQL playground.

Selecionando colunas que correspondem a um padrão

Vamos começar com um cenário comum: selecionar apenas as colunas que contêm _amount no conjunto de dados de táxi de NYC. Em vez de digitar manualmente o nome de cada coluna, podemos usar a expressão COLUMNS com uma expressão regular:
Teste esta consulta no SQL playground
Esta consulta retorna as 10 primeiras linhas, mas apenas das colunas cujos nomes correspondem ao padrão .*_amount (quaisquer caracteres seguidos de “_amount”).
Digamos que também queremos retornar colunas que contenham os termos fee ou tax. Podemos atualizar a expressão regular para incluí-los:
Teste esta consulta no SQL playground

Selecionando vários padrões

Podemos combinar vários padrões de colunas em uma única consulta:
Experimente esta consulta no SQL playground

Aplicar funções a todas as colunas

Também podemos usar o modificador APPLY para aplicar funções a todas as colunas. Por exemplo, se quisermos encontrar o valor máximo de cada uma dessas colunas, podemos executar a seguinte consulta:
Teste esta consulta no SQL playground
Ou, talvez, prefiramos ver a média:
Teste esta consulta no SQL playground
Esses valores têm muitas casas decimais, mas felizmente podemos corrigir isso encadeando funções. Neste caso, aplicaremos a função avg, seguida da função round:
Teste esta consulta no SQL playground
Mas isso arredonda as médias para números inteiros. Se quisermos arredondar para, digamos, 2 casas decimais, também podemos fazer isso. Além de aceitar funções, o modificador APPLY também aceita uma expressão lambda, o que nos dá a flexibilidade de fazer com que a função de arredondamento arredonde nossos valores médios para 2 casas decimais:
Teste esta consulta no SQL playground

Substituindo colunas

Até aqui, tudo bem. Mas digamos que queiramos ajustar um dos valores, mantendo os demais como estão. Por exemplo, talvez queiramos dobrar o valor total e dividir o imposto MTA por 1,1. Podemos fazer isso usando o modificador REPLACE, que substitui uma coluna e mantém as demais como estão.
Teste esta consulta no SQL playground

Excluindo colunas

Também é possível excluir um campo usando o modificador EXCEPT. Por exemplo, para remover a coluna tolls_amount, escreveríamos a seguinte consulta:
Teste esta consulta no SQL playground
Última modificação em 3 de julho de 2026