皆さんこんにちは
唐突ですが縦長のデータを取扱わざるを得ない時に苦労したことはありませんでしょうか
BIツールを使っていればそこまで意識することはないのですがいざ直面した時でも対応が
できるようにしておくために備忘録として残しておきます。
【準備するもの】
Googleが用意しているオープンデータ
FROM `bigquery-public-data.covid19_ecdc_eu.covid_19_geographic_distribution_worldwide`
こちらを使っていきます。
【例題】
国別の年月で陽性者数をまとめる。
PIVOT関数を使う。
日本、アメリカのものだけ整列させる。
【解決】
まずは必要なカラムだけ指定します。
WITH T0 AS (
SELECT
year,
month,
country_territory_code,
daily_confirmed_cases
FROM `bigquery-public-data.covid19_ecdc_eu.covid_19_geographic_distribution_worldwide`
)
続いてPIVOT関数を用いて縦横を並べ替えします。
特徴的なのはFROMの後になりますの。
, T1 AS (
SELECT
year,
month,
JPN,
USA,
FROM T0
PIVOT (SUM(daily_confirmed_cases) FOR country_territory_code IN (“JPN”, “USA”))
)
SELECT * FROM T1
特徴なのは何でSUMするのか FORの後にどのカラムの何で集約するのかを
PIVOT関数で指定しているところです。
配列にしてからPIVOTも可能かと思いますが確認した後に掲載いたします。
コメントを残す