APPLY 修飾子を使って一致したカラムに関数を適用することもできるため、データ分析や変換作業で非常に役立ちます。
この機能の使い方を、ニューヨークのタクシーデータセット を使って学んでいきます。このデータセットは ClickHouse SQL playground でも確認できます。
パターンに一致するカラムを選択する
_amount を含むカラムだけを選択します。各カラム名を手入力する代わりに、正規表現を使った COLUMNS 式を使用できます。
このクエリを SQL Playground で試すこのクエリは最初の 10 行を返しますが、名前がパターン
.*_amount (任意の文字列の後に “_amount” が続く) に一致するカラムだけを対象にしています。
fee または tax を含むカラムも返したいとします。
その場合は、それらも含めるように正規表現を更新できます。
SQL Playgroundでこのクエリを試す
複数のパターンの選択
このクエリをSQL Playgroundで試す
すべてのカラムに関数を適用する
APPLY 修飾子を使うと、すべてのカラムに対して関数を適用することもできます。
たとえば、それぞれのカラムの最大値を求めるには、次のクエリを実行します。
このクエリを SQL Playground で試す
このクエリをSQL Playgroundで試す
avg 関数を適用し、その後に round 関数を適用します。
このクエリを SQL Playground で試す
APPLY 修飾子は関数だけでなくラムダも受け取れるため、平均値を小数点以下2桁に丸めるように round 関数を柔軟に適用できます:
このクエリをSQL Playgroundで試す
カラムの置き換え
REPLACE 修飾子を使用します。これにより、ほかのカラムはそのままにして、1つのカラムだけを置き換えられます。
SQL Playgroundでこのクエリを試す
カラムの除外
EXCEPT 修飾子を使って、カラムを除外することもできます。たとえば、tolls_amount カラムを除外するには、次のクエリを記述します。
SQL Playgroundでこのクエリを試す