我有一个已创建的SQL Server表,但我想折叠使其宽而不是高(我不知道这是否是正确的术语)。
基本上,我想通过记录某些ID的来源来显示数据库中ID的来源。我将它们全部结合在一起,最终导致ID重复很多。
这就是我目前所拥有的。具有ID的数据集,以及来自哪个表的数据集,在该列中以1或0表示。所以看起来有点像这样。
ID Table1 Table2 Table3 Table4 Table5
--------------------------------------------------------
1 1 0 0 0 0
1 0 1 0 0 0
1 0 0 1 0 0
1 0 0 0 0 1
2 1 0 0 0 0
2 0 1 0 0 0
2 0 0 0 1 0
我想要一个折叠ID并执行类似操作的表。
ID Table1 Table2 Table3 Table4 Table5
--------------------------------------------------------
1 1 1 1 0 1
2 1 1 0 1 0
答案 0 :(得分:2)
您可以使用max()
:
select id, max(col1) as col1, max(col2) as col2, max(col3) as col3,
max(col4) as col4, max(col5) as col5
from t
group by id;