ホームページ >データベース >mysql チュートリアル >PIVOT 関数を使用して BigQuery でデータを動的にピボットするにはどうすればよいですか?

PIVOT 関数を使用して BigQuery でデータを動的にピボットするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-26 18:48:09387ブラウズ

How Can I Dynamically Pivot Data in BigQuery Using the PIVOT Function?

BigQuery の PIVOT 関数: 動的四半期値の処理

BigQuery で最近導入された PIVOT 関数は、データを表形式に変換する便利な方法を提供します。指定された列の行をピボットします。ただし、現実のシナリオでは、ピボット列の値 (四半期など) が事前に不明な状況によく遭遇します。

この課題に対処するために、次のクエリを考えてみましょう:

SELECT * FROM
  (SELECT * FROM Produce)
  PIVOT(SUM(sales) FOR quarter in (select distinct quarter from Produce))

このクエリは、Quarter 列で Produce テーブルを動的にピボットしようとしますが、望ましい結果は得られません。欠けている要素は、PIVOT 句を動的に構築する必要があることです。

解決策は、SQL の即時実行関数を使用して、動的に生成されたクエリを実行することです。改良されたクエリを次に示します。

execute immediate (             
select '''select * from (select * from `project.dataset.Produce`)
  pivot(sum(sales) for quarter in ("''' ||  string_agg(quarter, '", "')  || '''"))
'''
from (select distinct quarter from `project.dataset.Produce` order by quarter) 
);

このクエリは次の手順を実行します。

  1. 変更された PIVOT クエリを含む文字列を作成します。四半期値は string_agg を使用して動的に生成されます。
  2. 変更されたクエリを実行して、目的のピボット テーブルを取得します。
  3. 列が一貫した順序で表示されるように、個別の四半期値の順序を指定します。

SQL の柔軟性を活用することで、静的ピボット列の制限を克服し、動的な値を処理できます。シームレスに。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。