BigQuery の PIVOT 関数を使用したクエリのカスタマイズ
最近 BigQuery に導入された PIVOT 関数を使用すると、便利なデータの再形成が可能になりますが、場合によっては分からないこともあります特定の列の値を事前に設定します。この記事では、データを動的にピボットしようとするときに直面する一般的な課題について説明します。
静的 PIVOT クエリの問題
列の値が事前に定義されている場合は、単純な PIVOT クエリを使用できます。次のように:
SELECT * FROM (SELECT * FROM Produce) PIVOT(SUM(sales) FOR quarter IN ('Q1', 'Q2', 'Q3', 'Q4'))
動的 PIVOT クエリ解決策
ただし、実際のシナリオでは、事前に列の値を利用できないことがよくあります。これに対処するには、次のクエリを使用して 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) );
PIVOT 列を動的に生成することで、既知の列の値に関係なく、データをクエリして再形成できます。このアプローチは、大規模なデータセットや進化するデータセットを扱う場合に特に便利です。
以上がBigQuery で PIVOT クエリを動的にカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。