假设我有一个SELECT,它返回以下数据:
select nr, name, val_1, val_2, val_3
from table
Nr. | Name | Value 1 | Value 2 | Value 3
-----+------------+---------+---------+---------
1 | Max | 123 | NULL | NULL
1 | Max | NULL | 456 | NULL
1 | Max | NULL | NULL | 789
9 | Lisa | 1 | NULL | NULL
9 | Lisa | 3 | NULL | NULL
9 | Lisa | NULL | NULL | Hello
9 | Lisa | 9 | NULL | NULL
我想把行数压缩到最低限度.
我想要以下结果:
Nr. | Name | Value 1 | Value 2 | Value 3
-----+------------+---------+---------+---------
1 | Max | 123 | 456 | 789
9 | Lisa | 1 | NULL | Hello
9 | Lisa | 3 | NULL | NULL
9 | Lisa | 9 | NULL | NULL
对于用Max(第1名)压缩行,使用最大值的group by会很有帮助.
select nr, name, max(val_1), max(val_2), max(val_3)
from table
group by nr, name
但我不确定如何才能得到丽莎想要的结果(第9条).Lisa的行在Value 3列中包含一个值,在本例中,它与第一行匹配Nr和name并且在Value 3中值为Null值.
我非常感谢您的每一次投入!