Snowflakeを使っていて便利だと思った関数を10個挙げてみます。
ARRAY_AGG
複数の行を配列に集約する。
SQL例
SELECT ARRAY_AGG(column_name) AS aggregated_array FROM table_name;
DATE_TRUNC
日付/時間の特定の部分(年、月、日など)で切り捨てる。
SQL例
SELECT DATE_TRUNC('month', CURRENT_DATE) AS truncated_date;
TO_DATE
文字列を日付型に変換する。
SQL例
SELECT TO_DATE('2024-06-06', 'YYYY-MM-DD') AS date_value;
IFF
条件に基づいて値を返す(IF文の簡易版)。
SQL例
SELECT IFF(condition, 'True Value', 'False Value') AS result;
COALESCE
NULLでない最初の値を返す。
SQL例
SELECT COALESCE(column1, column2, 'default_value') AS result;
TRY_CAST
型変換を試み、失敗した場合はNULLを返す。
SQL例
SELECT TRY_CAST(column_name AS INTEGER) AS casted_value;
LISTAGG
複数の行を一つの文字列に連結する。
SQL例
SELECT LISTAGG(column_name, ', ') WITHIN GROUP (ORDER BY column_name) AS concatenated_string FROM table_name;
RANK
順位を付ける分析関数。
SQL例
SELECT column_name, RANK() OVER (PARTITION BY category_column ORDER BY value_column DESC) AS rank FROM table_name;
PIVOT
行を列に変換する。
SQL例
SELECT * FROM table_name PIVOT (SUM(value_column) FOR pivot_column IN ('value1', 'value2', 'value3'));
UNPIVOT
列を行に変換する。
SQL例
SELECT * FROM table_name UNPIVOT (unpivot_column FOR column_name IN (value1, value2, value3));