如何将具有相同ID的多行合并为一行。 [英] How can I merge multiple rows with same ID into one row.
问题描述
我有桌子:
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屋!