android - sqlite根据计数合并列数据

标签 android sql sqlite count

我不确定这是否真的可以在 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/

相关文章:

mysql连接不同ID的同一张表

python - flask/sqlalchemy - OperationalError : (sqlite3. OperationalError) 没有这样的表

android - 在 Android Studio 的 build.gradle 中设置的 Android R/11 的 API 级别是什么?

android - 将 android 项目从 eclipse 迁移到 android studio 时出现 "Gradle location is incorrect"

android - android-phonegap 应用程序中的条码解码

android - 从android中的联系人中检索电话号码

sql - 如何检查同义词是否已存在然后不创建同义词

SQL 服务器 : how to select the rows in a table with the same value on a column but some exact values on another column for the grouped rows

Python计算大文件中的单词数

mysql - 如何在sqlite中只选择最大行?