mysql合并具有相同id的多个记录,忽略空字段

kupeojn6  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(495)

我希望将具有相同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的多行合并到一行)。这些都没有达到预期的效果。任何帮助都将不胜感激。

clj7thdc

clj7thdc1#

使用 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;
7eumitmz

7eumitmz2#

如果每列只有一个值(看起来像是数据示例中的值),则可以使用聚合方法:

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

相关问题