微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLite3:合并具有常见列的行

如何解决SQLite3:合并具有常见列的行

对于某些情况,我在sqlite3中有一个当前看起来像这样的表:

DB Browser view of table breed_merge

我想要做的是合并具有相同品种的行。在两种情况下都不会填充相同的列。到目前为止,我已经尝试过这种查询,但是它并没有真正完成我要寻找的工作,因为它不会根据需要对行进行重复数据删除或合并。同样,将其归纳为所有列似乎很困难,而不必手动键入每个列的名称

select distinct t1.breed,coalesce(t1.dog_group_1,t2.dog_group_1) from breed_merge t1 left join breed_merge t2 on t1.breed = t2.breed;

输出

Afador|
Affenhuahua|
Affenpinscher|
Affenpinscher|GROUP 1 - TOYS
Afghan Hound|
Afghan Hound|GROUP 4 - HOUNDS
...

所需的输出

Afador|
Affenhuahua|
Affenpinscher|GROUP 1 - TOYS
Afghan Hound|GROUP 4 - HOUNDS
...

解决方法

对于此样本数据,每个品种最多有2行,而这2行中的每行(如果存在)都包含一个值或null,那么您要做的就是将{{1}分组},并将breed之类的聚合函数用于其他各列:

MAX()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。