Athenaのウィンドウ関数を実行してみる

1 min read読了の目安(約800字

1. 国と、その国の人口、その国が属する大陸の合計人口を出力するクエリ

年ごとにレコードがあるので、それも補足的に出力

SELECT
  year AS "年",
  country AS "国",
  pop AS "人口",
  SUM(pop) OVER (PARTITION BY continent) AS "大陸の合計人口"
FROM gapminder

2. ウィンドウ関数を使わずに出力する

その国が属する大陸の合計人口の答え合わせ的に実行。1のレコード量が多いので、アメリカ大陸の総人口に絞ってもう一度取得しておきます

SELECT
  year AS "年",
  country AS "国",
  pop AS "人口",
  SUM(pop) OVER (PARTITION BY continent) AS "大陸の合計人口"
FROM gapminder
WHERE continent = 'Americas'

下記のクエリはGROUP BY句を使用して集計しています。

SELECT
  continent AS "大陸名",
  SUM(pop) AS "人口"
FROM gapminder
GROUP BY continent

アメリカ大陸の総人口は、7,351,438,499人。ウィンドウ関数でも同じ結果が返ってきています。このようにウィンドウ関数を使うと、GROUP BY句などでまとめられずに個々のデータを残したまま、集計作業を行うことができるようです。