select name,id,
max(case when groupa = 'A' then groupa end) as group1,
max(case when groupa = 'B' then groupa end) as group2,
max( case when groupa = 'C' then groupa end) as group3
from tablename
group by name, id
groupaの数が固定されている場合、上記のクエリは機能します。
編集:ピボットの使用
select * from
(select name, id , groupa from tablename)
pivot xml (
max(groupa) for groupa in
(select distinct groupa from tablename)
)
解決してくれてありがとう。もうすぐです。これは、このクエリを実行した後に取得するものです。実際には53の異なるグループがあるため、53の列が追加されていますが、ユーザーに割り当てられるグループの最大数は5です。
NAME ID A B C D E F G H
James 20 A null null null null null null H
Michael 30 A B null null E null null null
このような結果を得るにはどうすればよいですか...
NAME ID GROUP_1 GROUP_2 GROUP_3
James 20 A H
Michael 30 A B E
質問で述べたように、どうすれば結果を得ることができますか?ありがとうございます