ホームページ > データベース > mysql チュートリアル > ピボット列の値が不明な場合、BigQuery でデータを動的にピボットするにはどうすればよいですか?

ピボット列の値が不明な場合、BigQuery でデータを動的にピボットするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-23 07:05:03
オリジナル
776 人が閲覧しました

How Can I Dynamically Pivot Data in BigQuery When Pivot Column Values Are Unknown?

BigQuery の PIVOT 関数を動的に利用する

BigQuery の最新の追加機能である PIVOT 関数は、データをよりピボット テーブルに似た形式に変換できる機能として大きな注目を集めています。 。ただし、ピボット列の値が事前にわからないシナリオに直面した場合、従来の方法は効果がないことが判明する可能性があります。

そのような場合、文字列連結を使用した動的アプローチにより、この制限を回避できます。四半期列の個別の値に基づいてピボット クエリを動的に生成することにより、任意の数の未知のピボット値を効果的に処理できます。

コード スニペット

次のコード スニペットは、この動的アプローチの例です。

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) 
);
ログイン後にコピー

どうやってWorks

  1. EXECUTE IMMEDIATE: このステートメントは、生成されたクエリ文字列を動的に実行します。
  2. クエリ生成:

    • select '''select * from (select * from project.dataset.Produce): Produce テーブルからデータをsubquery.
    • pivot(sum(sales) for四半期 in ("''': 四半期列の売上の合計を指定して、PIVOT 操作を開始します。
    • string_agg(quartz, ' ", "'): 個別の四半期の値を二重引用符で囲まれたカンマ区切りの文字列に動的に連結して、ピボット列リスト。
    • "'''")): PIVOT 句を完了します。
  3. サブクエリ:

    • (project.dataset.Produce order by四半期から個別の四半期を選択): で個別の四半期の値を取得します。

利点

この動的アプローチには、いくつかの利点があります。

  • スケーラビリティ: 任意の数のピボット列をシームレスに処理します
  • 簡潔性: 文字列の連結により、単一のステートメントで PIVOT クエリを構築でき、コードの明瞭さが向上します。

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

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