ホームページ > データベース > mysql チュートリアル > BigQuery でデータのピボットを解除するにはどうすればよいですか?

BigQuery でデータのピボットを解除するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-23 03:19:09
オリジナル
935 人が閲覧しました

How to Unpivot Data in BigQuery?

BigQuery でデータをピボットされた構造からピボットされていない構造に変換する方法

BigQuery では、データを変換するという課題が提示されます。ピボットされたテーブルをピボットされていない形式に変換します。これには、データをより表形式の表現に転置することが含まれます。これを実現するには、次の手順を検討してください。

UNPIVOT 演算子の使用 (推奨)

BigQuery では、この変換を簡素化する専用の UNPIVOT 演算子が提供されるようになりました。この演算子を使用すると、回転するピボット列 (Q1、Q2、Q3、Q4 など) とその結果の列 (売上、四半期など) を指定できます。

SQL 構文:

SELECT product, UNPIVOT(value FOR quarter IN (Q1, Q2, Q3, Q4)) AS sales_quarter
FROM pivoted_table
ログイン後にコピー

ネストされたオブジェクトの使用クエリ

UNPIVOT 演算子の導入前は、BigQuery ユーザーはネストされたクエリを使用してアンピボットを実現できました。

SQL 構文:

SELECT product,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q1 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q1,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q2 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q2,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q3 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q3,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q4 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q4
FROM pivoted_table
ログイン後にコピー

データ例変換

次の例では、ピボットされたテーブル

product | Q1 | Q2 | Q3 | Q4
-------------------------------
Kale    | 51 | 23 | 45 | 3
Apple   | 77 | 0  | 25 | 2
ログイン後にコピー

をピボットされていないテーブル

product | sales | quarter
-------------------------------
Kale    | 51    | Q1
Kale    | 23    | Q2
Kale    | 45    | Q3
Kale    | 3     | Q4
Apple   | 77    | Q1
Apple   | 0     | Q2
Apple   | 25    | Q3
Apple   | 2     | Q4
ログイン後にコピー
に変換します。

以上がBigQuery でデータのピボットを解除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート