1

我希望将多个具有相同 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

我已经查看了此处和其他网站上的多个其他类似问题,这些问题似乎正在处理字段中的数值,例如这个(将具有相同 ID 的多行合并到一行)。这些都没有预期的效果。任何帮助,将不胜感激。

4

2 回答 2

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;
于 2018-10-04T14:21:38.473 回答
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
于 2018-10-04T14:22:26.093 回答