我不确定在sqlite中这样做是否真的可行。

这是表的一部分(没有PK,FK或ID,只有常规文本数据):

    col1 col2 col3
    foo1 bar1 foobar1
    foo1 bar1 foobar2
    foo1 bar1 foobar3


我可以通过以下方式选择foo1和bar1的计数

    SELECT col1, col2, COUNT(*)
    FROM table1
    GROUP BY col1
    HAVING COUNT(*) > 1;


找到重复的列,但我的最终目标是将第3列中的数据合并为一列,并以斜线分隔,即foobar1 / foobar2 / foobar3,并删除除1之外的所有选定行,因此输出为:

    col1 col2 col3
    foo1 bar1 foobar1/foobar2/foobar3


我认为仅在SQLite中很难做到这一点,但是可能吗?如果不是,您将如何使用Java之类的常规编程语言来实现此目的?我正在做Android编程,所以我能够访问数据库并进行查询。

最佳答案

我很确定SQLite支持GROUP_CONCAT

SELECT col1, col2, GROUP_CONCAT(col3) col3
FROM table1
GROUP BY col1, col2



SQL Fiddle Demo


如果需要将定界符从“,”更改为“ /”,请使用:

GROUP_CONCAT(col3, '/') col3

10-07 14:00