ホームページ >データベース >mysql チュートリアル >PIVOT 関数を使用して BigQuery でデータを動的にピボットするにはどうすればよいですか?
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) );
このクエリは次の手順を実行します。
SQL の柔軟性を活用することで、静的ピボット列の制限を克服し、動的な値を処理できます。シームレスに。
以上がPIVOT 関数を使用して BigQuery でデータを動的にピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。