私の頭を包み込むのに困っているピボット(または他のソリューション)を使用してデータを移調するだけです。私は情報を集約することを心配する必要はありません。文字通り行と列を転置したいだけです。
私は、各レコードが一連の質問に対する回答を格納するテーブルを持っています。この構造は、すべての質問がイエス/ノービットの場合のように見えます:
(pk)ID, q1, q2, q3, q4, q5....
私は次のような質問をしたい
select ID, q1, q2, q3, q4, q5
from mytable
where myconditions
私が得るように転置する
ID 1 2 3 4
q1 1 1 0 1
q2 1 0 0 1
q3 0 0 1 1
q4 1 1 1 1
q5 0 0 1 0
回答:
回答№1は1これを試して
SELECT *
From
(
select id, col, value
from mytable
unpivot
(
value
for col in (q1, q2, q3, q4, q5)
) unpiv
) src
pivot
(
min(value)
for ID in ([1],[2],[3],[4])
) piv
Op:
COL 1 2 3 4
q1 1 1 0 1
q2 1 0 0 1
q3 0 0 1 1
q4 1 1 1 1
q5 0 0 1 0