我希望将多个具有相同ID的记录合并到每个ID中一个记录中。我不得不使用数据透视表从多个其他表中获取所需的数据,并将其转换为一个看起来像这样的临时表:
ID |Data1|Data2|Data3|Data4
1 asdf NULL NULL NULL
1 NULL blah NULL NULL
1 NULL NULL this NULL
1 NULL NULL NULL data
2 NULL funk NULL NULL
2 NULL NULL jazz NULL
我想找到一种方法,将具有相同ID的所有记录合并到新表中的新记录中,如下所示:
ID |Data1|Data2|Data3|Data4
1 asdf blah this data
2 NULL funk jazz NULL
我在这里和其他网站上浏览了多个其他类似的问题,这些问题似乎正在处理诸如此类(Merge multiple rows with same ID into one row)之类的字段中的数值。这些效果不理想。任何帮助,将不胜感激。
答案 0 :(得分:2)
将MAX()
与GROUP BY
子句一起使用:
SELECT t.ID,
MAX(t.Data1),
MAX(t.Data2),
MAX(t.Data3),
MAX(t.Data4)
FROM table AS t
GROUP BY t.ID;
答案 1 :(得分:1)
如果每个列只有1个值(从数据样本中看起来像它),则可以使用聚合方法:
SELECT t.id ,
max(t.data1) as data1,
max(t.data2) as data2,
max(t.data3) as data3,
max(t.data3) as data3
FROM YourTable t
GROUP BY t.id