14

なぜ誰かが列を行に変換したいのですか (つまり、ピボット)? どの問題を解決しますか?

いくつかのリンクを見つけましたが、質問に対する満足のいく回答が得られませんでした。

http://codeghar.wordpress.com/2007/11/03/pivot-tables/

http://msdn.microsoft.com/en-us/library/ms177410%28SQL.105%29.aspx

4

3 に答える 3

10

通常、これは、レイアウトがレポートまたはピボット後のユーザーインターフェイスでより適切に機能するためです。

正規化されたデータベース上のデータは、UIがそれらのレコードをフィールドとして表示したい場合に、複数のレコードの「形」のデータになる可能性があります。データの正規化は優れていますが、データを簡潔で自然な形式で表現する場合、ピボットが必要になることがよくあります。

ここの例

確かに、私がリンクした例は、真のDBではなくExcelですが、写真は、ピボットされたデータがより自然に見える例を示しており、概念は同じです。

于 2012-07-24T05:40:02.250 に答える
2

例としてこれはどうですか?

T-SQL を使用してデータを PIVOT する方法

データ抽出で一般的に期待されるのは、複数の行の出力を 1 つの行の複数の列に変換する機能です。SQL Server 2005/2008 では、クエリで PIVOT 演算子を使用してこれを行うことができます。

編集

顧客ごとの売上を日付別に格納するテーブルがあるとします。

何かのようなもの

Table
- SaleDate
- CustomerID
- SaleAmount

PIVOT を使用すると、月/四半期/年ごとにクライアントごとの売上を合計するグリッドを表示できます

    |Client A|Client B|Client C
--------------------------------
2007| 100    | 0      | 150
2008| 0      | 200    | 160
2009| 110    | 180    | 100

これは純粋に要約を目的としたものです。

于 2012-07-24T05:33:37.030 に答える