COALESCE関数の追加
Googleは2021年4月1日(木)、Looker Studio(旧Google データポータル)に関するアップデートを発表しました。
※参考リンク:
COALESCE関数は、NULLではない最初の値を返す関数です。構文は以下です。
COALESCE(field_expression1[, field_expression2, ...])
最初の[field_expression1]がNULLでなければ、その値を返します。NULLであれば次の[field_expression2]を参照し、NULLでなければ、その値を返します。値が返される、または全ての[field_expression]が参照されるまで処理は続き、全ての[field_expression]がNULLの場合、NULLが返されます。
例えば、ECサイトなどでの商品購入時に、現住所とは別に郵送先住所のそれぞれを記入するケースで利用できます。
以下のようなデータソースに対して、
次の関数を利用すると、
以下のようにデータが返されます。
IFNULL関数の追加
IFNULL関数は、COALESCE関数の引数を二つにした場合の挙動と同じです。以下は構文です。
IFNULL(input_expression, null_result)
[input_expression]がNULLでなければ、その値を返します。NULLであれば[input_expression]を返します。
例えば、割引をしなかった注文も含めた平均割引額を計算したいEC事業者がいるとします。また、その企業が導入している計測ツールでは「割引なし」の場合[Discount]フィールドに[0]ではなく[null]を返すとします。[AVG(Discount)]という計算式を使った場合、nullは計算の対象外になるため、nullをゼロに変換する必要があります。そのために以下の計算式を使って[Discount No Nulls]という新しいフィールドを作成します。
IFNULL(Discount, 0)
この式は「Discountフィールドがnullの場合は0を返し、それ以外の場合はDiscountを返す」ということを表しています。次に、割引をしなかった注文も含めた平均割引額を計算します。
AVG(Discount No Nulls)
NULLIF関数の追加
NULLIF関数は、二つの引数の値を比較し、等しければNULLを返し、等しくなければ一番目の引数の値を返します。以下は構文です。
NULLIF (input_expression, null_result)
[input_expression]と[null_result]の値が等しい場合、NULLが返されます。等しくない場合[input_expression]の値が返されます。
例えば、割引をした注文のみの平均割引額を計算したいEC事業者がいるとします。また、その企業が導入している計測ツールでは「割引なし」の場合[Discount]フィールドに[-1]を返すとします。[AVG(Discount)]という計算式を使った場合[-1]は計算の対象になるため、誤った結果を返します。これを回避するためには[-1]をnullに変換する必要があります。そのために以下計算式を使って[Discount With Nulls]という新しいフィールドを作成します。
NULLIF(Discount, -1)
この式は「Discountフィールドが-1の場合はnullを返し、それ以外の場合は割引を返す」ということを表しています。次に、割引した注文のみの平均割引額を計算します。
AVG(Discount With Nulls)
BigQuery GEOGRAPHYへの対応
データポータルのGoogleマップグラフが、複雑な地理空間データであるBigQuery GEOGRAPHYに対応しました。
パブリックデータセットを使用したチュートリアルが紹介されているため、以下を参照してください。
今回追加された三つの関数は、SQLに詳しい人には既知の関数だと思います。BigQuery GEOGRAPHYの対応と同じタイミングでリリースされたこともあり、今回のアップデートは、BigQueryなどのDWHとデータポータルを連携した際に活用できる機能であるといえます。
今回追加された機能の利用シーンは限られますが、いざというときのために覚えておきたいですね。