ホームページ >データベース >mysql チュートリアル >ランタイム生成値を使用して Oracle SQL で動的ピボットを作成するにはどうすればよいですか?
Oracle SQL 動的ピボット テーブル: 実行時に値を生成するためのヒント
Oracle SQL で動的ピボット テーブルを使用する場合の一般的なジレンマは、新しい値がデータ ソースに追加されるたびにピボット式を手動で更新する必要があることです。この手動プロセスは時間がかかり、エラーが発生しやすくなります。
この問題を解決するには、利用可能なデータに基づいてピボット式を自動的に生成する動的アプローチを採用できます。具体的な方法は以下の通りです。
まず、動的パースペクティブ式を保持する一時文字列変数を作成します。 COLUMN コマンドを使用すると、temp_in_statement
という名前の新しい一時列を定義し、結果のピボット式を保存できます。
次に、COLUMN NEW_VALUE 関数と LISTAGG 関数を使用して、temp_in_statement
列に動的ピボット式を構築します。この式は、データ ソースからのカンマ区切りのさまざまな値と適切なエイリアスで構成されます。
temp_in_statement
列に動的ピボット式を作成したら、それを PIVOT クエリのパラメーターとして参照できます。例:
<code class="language-sql">SELECT * FROM ( SELECT myNumber, myLetter, myValue FROM myTable ) PIVOT (Sum(myValue) AS val FOR myLetter IN (&str_in_statement));</code>
このクエリでは、&str_in_statement
プレースホルダーは、temp_in_statement
列に格納されている動的ピボット式に置き換えられます。これにより、ピボット式を手動で更新せずにピボット クエリを実行できるようになります。
以上がランタイム生成値を使用して Oracle SQL で動的ピボットを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。