SQLite - Group Concat和Distinct

时间:2018-04-17 13:13:27

标签: database sqlite

早上好,

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

我的请求如下:

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

"''"在GROUP_CONCAT中指定我想要使用的分隔符。如果我使用DISTINCT和分隔符选项,它会返回此错误:

  

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

如果我在没有分隔符选项的情况下使用DISTINCT,它可以工作,如果我使用没有DISTINCT的分隔符,它也可以工作。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

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;