サインアップ

ログイン

パスワードをお忘れですか

パスワードを忘れましたか? メールアドレスを入力してください。 リンクを受け取り、メールで新しいパスワードを作成します。

質問するにはログインする必要があります

Bigqueryで行と列を入れ替える

皆さんこんにちは

唐突ですが縦長のデータを取扱わざるを得ない時に苦労したことはありませんでしょうか
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も可能かと思いますが確認した後に掲載いたします。

コメントを残す