Article Outline
SPLIT関数
TOC
Collection Outline
[BIGQUERY] 分析入門
[BIGQUERY] SQL
■ 句(節)
■ 演算子
■ BigQuery特有
■ 関数
- approx_count_distinct() - 集計近似
- coalesce()
- countif()
- extract()
- greatest()
- ifnull()
- last_day()
- lead() / lag()
- left() / right()
- lower()
- nullif()
- parse_date()
- row_number() - 番号付
- safe_cast()
- split()
- st_distance()
- nth_value()
- first_value() / last_value()
- percentile_()
データ型
■ エラー
- error
- Resources exceeded during query execution: Not enough resources for query planning - too many subqueries or query is too complex
[BIGQUERY] ADVANCE
[BIGQUERY] ML
[BIGQUERY] DS
■ DS100ノック
■
[BIGQUERY] GA
|| SPLIT()
select
-- SPLITで文字列を' '(スペース)で区切り、offsetで値にアクセス
split("hello world everyone", ' ')[offset(0)] -- 0番目の要素 hello
, split("hello world everyone", ' ')[offset(1)] -- 1番目の要素 world
, split("hello world everyone", ' ')[offset(2)] -- 2番目の要素 everyone
| アクセス方法
- [OFFSET(0)]:で分割した値にアクセスできる。(0index)
- [ORDINAL(1)]:で分割した値にアクセスできる。(1 index)
select
split("hello world everyone", ' ')[offset(0)] -- 0番目の要素 hello
, split("hello world everyone", ' ')[ordinal(1)] -- 1番目の要素 hello
※ SPLIT関数の戻り値はARRAY型の為、特定配列にアクセスする場合。
- [SAFE_OFFSET(0)]:0を始めとする.
- [SAFE_ORDINAL(1)]:1を始めとする.
select
oaza_name_kana
, split(oaza_name_kana, ' ')[offset(0)] as oaza_name_kana0 -- 大字
-- , nth(2, split(oaza_name_kana, ' ')) as oaza_name_kana1 -- NTH関数がレガシーSQLの為使用不可
, split(oaza_name_kana, ' ')[safe_offset(1)] as oaza_name_kana1 -- 丁目
from
jp_addresses
|| REFERENCE
- SPLIT - GoogleCloud
- [bigquery]項目を指定した文字列で分割する方法 - 目黒で働く分析担当の作業メモ
- BigQuery:SPLIT()は1つの値のみを返します - web-dev-qa-db-ja.com
- BigQueryで文字列の特定文字以前・以降を切り出して結合する - TEN's life
- BigQuery レガシーSQLのNTH関数を標準SQLで記述する - Qiita