如何将具有相同ID的多行合并为一行。 [英] How can I merge multiple rows with same ID into one row.

查看:112
本文介绍了如何将具有相同ID的多行合并为一行。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有桌子:



ID | A | B | C

1 NULL DEF NULL

1 ABC NULL NULL

2 XYZ NULL NULL

3 IJK NULL NULL

3 NULL LMN NULL

3 NULL NULL PQR





我想得到的结果为

ID | A | B | C
1 ABC DEF NULL

2 XYZ NULL NULL

3 IJK LMN PQR





我尝试了什么:



我尝试过CTE但它并没有给我相同的结果

I have table:

ID |A |B |C
1 NULL DEF NULL
1 ABC NULL NULL
2 XYZ NULL NULL
3 IJK NULL NULL
3 NULL LMN NULL
3 NULL NULL PQR


I want to get result as
ID |A |B |C
1 ABC DEF NULL
2 XYZ NULL NULL
3 IJK LMN PQR


What I have tried:

I have tried CTE but its not exactly giving me the same result

推荐答案

只需使用GROUP BY例如
Just use GROUP BY e.g.
select ID, MAX(A) AS A, MAX(B) AS B, MAX(C) AS C from #t
GROUP BY ID



但是!正如SerenityNowDev指出的......如果你在A中有超过1的值,那么如果Id = 1 ... MAX 仍然会给你你需要或做的结果你需要使用另一个聚合函数吗?只有你可以决定


BUT! As SerenityNowDev has pointed out ... what if you have more than 1 value in A for Id = 1 ... does the MAX still give you the result you need or do you need to use another aggregate function? Only you can decide


这篇关于如何将具有相同ID的多行合并为一行。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆