[英]Find record with TAG LIST column duplicated
我有一张这样的桌子
钥匙 | 标签 |
---|---|
001 | AB C |
002 | 德 |
003 | B C A |
VALUES 列包含标签列表,标签之间有空格。
我想找到所有具有重复值的键,而不是取决于它们的顺序。
在我的示例中,如何找到 KEY 001 和 003?
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.