Associate Data Practitioner(Google Cloud) 無料問題 2 / 10 ・ 分野1: データの準備と取り込み
BigQueryのSTRING列amountに「1200」と「不明」が混在している。数値として扱える行はNUMERICへ変換し、値の変換に失敗する行はNULLにしたい。使用する式はどれか。
- CAST(amount AS NUMERIC)
- SAFE_CAST(amount AS NUMERIC)
- CAST(amount AS FLOAT64)
- PARSE_NUMERIC(amount)
正解と解説を見る
正解: B
正解の理由
SAFE_CASTは通常のCASTと同様に型変換を試み、変換中の実行時エラーをNULLへ置き換える。STRINGからNUMERICへの変換自体は可能で、「1200」は数値となり、「不明」はNULLになる。ただし、型どうしが変換不可能な場合の静的解析エラーまで回避するものではない。
違う選択肢
「PARSE_NUMERIC(amount)」…文字列をNUMERICへ解釈するが、不正な数値文字列の失敗をNULLへ置き換える機能はない。
「CAST(amount AS FLOAT64)」…FLOAT64への通常のキャストであり、不明のような数値でない文字列は実行時エラーとなる。
「CAST(amount AS NUMERIC)」…通常のキャストでは不明をNUMERICへ変換できず、実行時エラーとなる。
押さえどころ
SAFE_CASTが扱うのは値の変換による実行時エラー。クエリ自体が無効な型変換とは分けて考える。
Associate Data Practitioner(Google Cloud)の演習アプリ(無料10問・全問は解錠で)へ