3

私は SSIS を実践しており、現在ピボット変換に取り組んでいます。これが私が取り組んでいるものです。以下のデータでデータ ソース (テーブル名: Pivot) を作成しました。

ここに画像の説明を入力

SSISを使用して、次の列を持つようにデータをピボットするためのパッケージを作成しました

PersonID --- Product1 --- Product2 --- Product3。

ここまでで、ピボット データをテキスト ファイルに作成できました。ただし、出力は PersonID でグループ化されていません。

私の現在の出力は

ここに画像の説明を入力

ご覧のとおり、変換は SetKey(PersonID : PivotUsage =1) に基づいてグループ化されません。

私が得たいと思っている出力は

ここに画像の説明を入力

PersonID に基づいてデータがグループ化される場所。

ここで何が欠けていますか?

編集:私が従っていた例に戻って、次のように入力データを並べ替えました。

ここに画像の説明を入力

入力データは毎回この順序/パターンにする必要がありますか? 私が遭遇した例のほとんどは、同様のパターンに従います。

4

2 に答える 2

4

はい、入力データは、ピボット対象のものでソートする必要があります。

データを効率的にピボットするには、つまり、出力データセットにできるだけ少ないレコードを作成するには、入力データをピボット列で並べ替える必要があります。データが並べ替えられていない場合、ピボット変換は、セット メンバーシップを定義する列であるセット キーの値ごとに複数のレコードを生成する可能性があります。たとえば、データセットが Name 列でピボットされているが、名前が並べ替えられていない場合、Name の値が変更されるたびにピボットが発生するため、出力データセットには顧客ごとに複数の行が含まれる可能性があります。

これは、MSDN のPivot Transformationドキュメントからの直接の引用です。(強調を追加しました。)

于 2013-09-02T20:47:16.430 に答える
0

この回答を最初に読んだとき、並べ替えられた列はピボットに PivotUsage=2 がある列である必要があると思いました。それが、ピボット列であると私が理解したものです。しかし、最終的にうまくいったのは、ピボットの使用法が 1 の列でソートすることでした。これは、SQL を手で書く場合にグループ化する列です。

于 2014-05-12T14:32:19.913 に答える