MySQL中如何按unique_id分组合并行数据并忽略空值
解法说明
你要的合并效果直接用分组聚合就能实现,MySQL的聚合函数会自动忽略NULL值,刚好匹配你忽略空值的需求。
假设你的表名为your_table,请自行替换为实际表名,查询语句如下:
SELECT MAX(first_name) AS first_name, MAX(`last name`) AS `last name`, MAX(age) AS age, unique_id FROM your_table GROUP BY unique_id;
补充说明
- 你的表字段
last name包含空格,需要用反引号包裹才能正常识别 - 上述语句执行后,
unique_id=222的默认输出为first_name=Reeves、last name=Keanu,如果你要完全匹配你给出的期望结果(两个字段值互换),调整字段取值即可:SELECT MAX(`last name`) AS first_name, MAX(first_name) AS `last name`, MAX(age) AS age, unique_id FROM your_table GROUP BY unique_id; - 该写法兼容所有MySQL版本,只要同一个
unique_id下每个字段最多只有一个非空值,就可以得到准确的合并结果。
内容的提问来源于stack exchange,提问作者lowbiecoder
相关产品推荐
相关产品推荐

