Snowflake の SQL Tips
こんにちは、 @kz_morita です。
Snowflake の SQL を書いてる時に、調べて便利だった Tips をまとめます。
EQUAL_NULL Snowflake では、= 演算子で値を比較できますが値が null の場合は結果も null になります。 null どうしなどを比較したい場合は、EQUAL_NULL 関数が便利です。
select'hoge'='hoge','hoge'=null,null='hoge',null=null,equal_null('hoge','hoge'),equal_null('hoge',null),equal_null(null,'hoge'),equal_null(null,null)結果は以下のようになります。
‘HOGE’ = ‘HOGE’ ‘HOGE’ = NULL NULL = ‘HOGE’ NULL = NULL EQUAL_NULL(‘HOGE’, ‘HOGE’) EQUAL_NULL(‘HOGE’, NULL) EQUAL_NULL(NULL, ‘HOGE’) EQUAL_NULL(NULL, NULL) TRUE null null null TRUE FALSE FALSE TRUE null どうしの比較などを行うことができます。
ARRAY_UNIQUE_AGG ARRAY_AGG 関数を使うと、グループ化した結果を配列で取得できますが、重複を取り除く ARRAY_UNIQUE_AGG 関数が便利です。
selectgroup_key,array_agg(value)asnon_unique_arr,array_distinct(array_agg(value))asunique_arr,arrray_unique_agg(value)asunique_arr2fromtable_namegroupby1今まで ARRAY_UNIQUE_AGG 関数は存在を知らなかったので、ARRAY_DISTINCT も使っていましたがこちらの方が便利です。