【问题标题】:sqlite3 - Merge multiple rows and multiple column into one column without duplicatessqlite3 - 将多行和多列合并为一列而不重复
【发布时间】:2013-11-07 05:54:40
【问题描述】:

我有一个问题:

在我的 SQLite(android 上的 sqlite3)数据库中,我有一个像这样的表:

idImp  | cer  | caus
---------------------
id1    | 010  | D1
id1    | 010  | D2
id1    | 011  | D2
id1    | 011  | D3
id2    | 010  | D1
id2    | 010  | D2
id2    | 011  | D2
id2    | 011  | D4

我想去

idImp | Conc
id1   | '010-D1-D2;011-D2-D3;'
id2   | '010-D1-D2;011-D2-D4;'

可以使用 SQLite 吗?有谁知道如何进行这项工作?

谢谢!

编辑(SRY,结果表中有错误):

我需要的是一个 SQL 查询,它将字段“caus”和字段“cer”与按“idImp”分组的特定分隔符连接起来。

我在 sqlite group_concat (X, Y) 的文档中发现它在为我服务时在单列上工作,但是我需要连接多个列并且我不知道该怎么做...

【问题讨论】:

  • 输入和输出是如何关联的?你的例子似乎没有意义。
  • 抱歉,结果表有错误。现在是对的

标签: sql sqlite


【解决方案1】:

分两步对值进行分组:

SELECT idImp,
       group_concat(causConc, '') AS Conc
FROM (SELECT idImp,
             cer || '-' || group_concat(caus, '-') || ';' AS causConc
      FROM MyTable
      GROUP BY idImp,
               cer)
GROUP BY idImp

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2020-06-09
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多