ピボットを使用して問合せを作成する際に問題が発生しました。 私は、このような出力項目ことができますので、私はピボットを使用しています4列oracle sqlピボットによってデータがグループ化されています
col1 | col2 | col3 | col4
1 | 1 | 5 | 2
1 | 2 | 6 | 2
1 | 3 | 7 | 2
1 | 4 | 8 | 2
1 | 1 | 5 | 2
1 | 2 | 6 | 2
1 | 3 | 7 | 2
1 | 4 | 8 | 2
を持っているテーブルがあります。ここでは
col1 | col2 | col3
はクエリです:
select col1, "1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"
from (
select col1, col2, col3
from tbl
where col4 = 2
)
pivot
(
max(col2)
for col3
in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
)
コードの動作を私はデータベースに2つの同一のレコードがあるときはいつもexcepct。グループ化され、1として表示されます。私は2つの別々の同じ行として出力したいと思います。私が見ている最も簡単な修正は、IDとして機能する別の列をテーブルに組み込むことです。しかし、私はこのIDを他のどこでも使用しないので、それはちょっと無意味だと思っていますし、ちょっとだけコードを変更するほうが簡単かもしれません。
1 5 6 7 8 9
と私はこれが欲しい:
上記のコードは、この出力
1 5 6 7 8 9
1 5 6 7 8 9
あなたはそうです。データのサブセットを決定するために追加の列が必要になります。これは、(col1、col2、col3)値の最初の行、(col1、col2、col3)値の2番目の行などにすべての行をグループ化するために使用するrow_number() " – Boneist
1つのDBMS(SQL ServerまたはOracle)またはあなたの質問はいずれかに有効ですか? –
@Boneistはい、これが最善の考えです。 – Kristjan