代码之家  ›  专栏  ›  技术社区  ›  Thibaud

SQLite-组Concat和Distinct

  •  2
  • Thibaud  · 技术社区  · 7 年前

    早上好

    我想请求一个SQLite数据库。 例如,我想打印结果中每个城镇的每个名称和组名。

    我的请求如下所示:

    SELECT Town, GROUP_CONCAT(DISTINCT name,';')
    FROM MY_TABLE
    WHERE action IS NOT NULL
    GROUP BY Town;
    

    组\u CONCAT中的“;”指定要使用的分隔符。如果使用DISTINCT和delimiter选项,它将返回以下错误:

    错误:不同聚合必须只有一个参数

    如果我在不使用分隔符选项的情况下使用DISTINCT,它会起作用;如果我在不使用DISTINCT的情况下使用分隔符,它也会起作用。

    谢谢你的帮助。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tim Biegeleisen    7 年前

    您可以尝试首先使用子查询为每个城镇生成所有不同的名称。然后,进行当前聚合:

    SELECT
        Town, GROUP_CONCAT(name, ';')
    FROM
    (
        SELECT Town, name
        FROM MY_TABLE
        WHERE action IS NOT NULL
        GROUP BY Town, name
    ) t
    GROUP BY Town;