SQLite3:将行与公共列合并

SQLite3: merge rows with common columns

对于某些上下文,我在 SQLite3 中有一个 table,目前看起来像这样:

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

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 行,并且这两行中的每一行(如果存在)都包含一个值或 null,您所要做的就是按 [= 分组12=] 并为每个其他列使用像 MAX() 这样的聚合函数:

SELECT breed, MAX(imgsrc) imgsrc, MAX(dog_group_1) dog_group_1, .....
FROM breed_merge 
GROUP BY breed