Article Outline
WINDOW句
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
|| WINDOW句
WINDOW句は名前付きウィンドウのリストを定義します。
名前付きウィンドウは、分析関数を使用するテーブル内の行のグループを表します。 名前付きウィンドウは、ウィンドウ指定で定義するか、別の名前付きウィンドウを参照することが可能です。
別の名前付きウィンドウを参照している場合、参照されるウィンドウは、参照するウィンドウよりも前に定義されている必要があります。
| 実行順序
WINDOW句を使用したクエリの評価は、通常、次の順序で完了します。
- FROM
- WHERE
- GROUP BY と集計
- HAVING
- WINDOW ← ココ!
- QUALIFY
- DISTINCT
- ORDER BY
- LIMIT
/* 同様の処理は纏められる */
select
member
, sum(amount) over w as total_amount
, count(amount) over w as number_of_amount
from
raw_table
window
w as (partition by member order by date)
group by
member
;
/* 組み換え可能 */
select
member
, sum(amount) over a as total_amount
, count(amount) over b as number_of_amount
, count(amount) over(c rows between PRECEDING and FOLLOWING) as number_of_amount
from
raw_table
window
a as (partition by member order by date)
, b as (partition by member order by date desc, class_a)
, c as b --こんなのもできる
group by
member
;
|| cf.
- WINDOW句 -GoogleCloud