SQLite3:合并具有常见列的行

时间:2020-10-10 08:59:34

标签: sql sqlite sql-merge

对于某些情况,我在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
...

1 个答案:

答案 0 :(得分:1)

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

MAX()