首页 > 解决方案 > SQLite将具有不同列值的多行合并到一个条目中

问题描述

我正在尝试使用 SQLite 将多行的列值合并到一个条目中:

ID   date        test Val1  Val2 Val3 val4  Val5 Val6

S1   2020/01/01  ECT   5     5     5     0    0    0

S2   2020/02/01  FCT   2     2     2     0    0    0

S1   2020/02/02  ECT   0     0     0     5    5    5

S2   2020/03/01  FCT   0     0     0     2    2    2

结果应该是:

 ID    test Val1  Val2 Val3 val4  Val5 Val6
    
 S1    ECT   5     5     5     5    5    5
    
 S2    FCT   2     2     2     2    2    2

我试过 group_concat 但我无法让它工作。我不想创建视图,而是想减少数据库中相同 ID 的不完整或“半完成”条目的数量。

另外,如果有帮助,我正在使用 python 将值存储在 SQLite DB 中。因此,如果有一种方法可以通过 python 来代替,那也很棒。欢迎任何帮助/评论

我对 SQL 很陌生,所以任何建议都将不胜感激!谢谢

标签: pythonsqlsqlite

解决方案


对于这个数据集,聚合做你想要的:

select id, test, max(val1) val1, max(val2) val2, max(val3) val3, max(val4) val4, max(val5) val5, max(val6) val6
from mytable
group by id, test

推荐阅读