0

如何将 DISTINCT 与 JSON_ARRAYAGG 一起使用?

让我们以下面的查询为例。

SELECT 
    staff.company,
    JSON_ARRAYAGG(
        JSON_OBJECT(
            'uuid', UuidFromBin(staff.uuid),
            'username', staff.username,
            'name', staff.name,
            'surname', staff.surname
        )
    )
FROM events_staff
JOIN staff ON staff.id = staff_id
LEFT JOIN skills s ON s.id = events_staff.skill_id
GROUP BY staff.company

现在,如何在此查询中将 DISTINCT 与 JSON_ARRAYAGG 一起使用,以便 JSON 对象不同?如果我们可以基于uuid之类的任何键应用 DISTINCT 会更好。

谷歌搜索半小时后,我找到了以下选项,但无法在上述查询中应用这些选项。

JSON_ARRAYAGG DISTINCT 返回一个 JSON 数组,该数组由所选行中 string-expr 的所有不同(唯一)值组成: JSON_ARRAYAGG(DISTINCT col1)。JSON 数组中不包含 NULL 字符串表达式。JSON_ARRAYAGG(DISTINCT BY(col2) col1)返回一个 JSON 数组,该数组仅包含 col2 值不同(唯一)的记录中的 col1 字段值。但是请注意,不同的 col2 值可能包含单个 NULL 作为不同的值。

4

0 回答 0