我想做的事情实际上应该是基本的,但是由于某种原因我无法弄清楚。请考虑以下内容:
ID, COL1, COL2
1 'A' NULL
1 NULL 'B'
我想按ID分组并“缩小”差距并获得:
ID, COL1, COL2
1 'A' 'B'
我可能正在停电,因为这听起来非常棘手的问题/解决方案。
在具有许多行和列的非常大的数据集上,因此效率很重要答案 0 :(得分:2)
您可以简单地使用一个“删除” NULL
值的聚合函数。例如,如果还有另一个值,MAX
不会选择NULL
SELECT
id,
MAX(col1) as col1,
MAX(col2) as col2
FROM my_table
GROUP BY id