我不确定这是否真的可以在 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
如果您需要将分隔符从“,”更改为“/”,请使用:
GROUP_CONCAT(col3, '/') col3
关于android - sqlite根据计数合并列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055967/