ホームページ >データベース >mysql チュートリアル >最適なデータ プレゼンテーションのために SQL Server の複数の列をピボットする方法
最適なデータ プレゼンテーションを実現する SQL Server の複数の列のピボット
リレーショナル データベースを使用する場合、テーブルのピボットはデータを再形成する効果的な方法となる可能性があります分析と視覚化が容易になります。 SQL Server では、この手法は、行として表示したい複数の列があるテーブルを扱う場合に特に役立ちます。
問題ステートメント:
次のサンプルを考えてみましょう。 table:
Branch | Category | Sales | Stock | Target ------- | ******** | ----- | ----- | ------- Branch1 | Panel | 100 | 200 | 300 Branch1 | AC | 150 | 250 | 350 Branch1 | Ref | 200 | 300 | 400
目標は、Category 列をピボットし、Sales、Stock、Target 列を行として表示することです。次の出力が得られます:
Branch | Panel | AC | Ref | ------- | ------ | -- | ---- | Branch1 | 100 | 150 | 200 |
解決策:
目的の出力を実現するには、SQL Server で一連のピボット ステートメントを使用します。重要なのは、後続のピボット操作に備えて、中間ピボット結果の列の名前を変更することです。
次のコードを考えてみましょう。
SELECT * FROM ( SELECT Branch, Category, Category+'1' As Category1, Category+'2' As Category2, Sales, Stock, Target FROM TblPivot ) AS P -- For Sales PIVOT ( SUM(Sales) FOR Category IN ([Panel], [AC], [Ref]) ) AS pv1 -- For Stock PIVOT ( SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1]) ) AS pv2 -- For Target PIVOT ( SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2]) ) AS pv3 GO
このコードは、次の手順を実行します。
結果として得られる pv3 テーブルには、行としてのカテゴリと、売上、在庫、目標値を表す列を含む目的の出力が含まれます。
以上が最適なデータ プレゼンテーションのために SQL Server の複数の列をピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。