繁体   English   中英

查找标签列表列重复的记录

[英]Find record with TAG LIST column duplicated

我有一张这样的桌子

钥匙 标签
001 AB C
002
003 B C A

VALUES 列包含标签列表,标签之间有空格。

我想找到所有具有重复值的键,而不是取决于它们的顺序。

在我的示例中,如何找到 KEY 001 和 003?

您可以使用SPLITLISTAGG来订购标签

WITH input_datas (key, tags) AS (
    VALUES
    ('001', 'A B C'),
    ('002', 'D E'),
    ('003', 'B C A')
),
key_tags AS (
    SELECT
        key, ELEMENT AS tag
    FROM
        input_datas
        CROSS JOIN TABLE (SYSTOOLS.SPLIT(tags, ' ')) AS tags
),
ordered_tags AS (
    SELECT
        key, LISTAGG(DISTINCT tag, ' ') WITHIN GROUP (ORDER BY tag) tags
    FROM key_tags
    GROUP BY key
)
SELECT * FROM ordered_tags WHERE tags IN (SELECT tags FROM ordered_tags GROUP BY tags HAVING count(1) > 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM