gpt4 book ai didi

sql - 在 PostgreSQL 中查找比较 2 个字段的重复项

转载 作者:行者123 更新时间:2023-11-29 12:44:52 25 4
gpt4 key购买 nike

我有一个包含以下数据的表格

id  parent_id   ascii_name  lang
1 123 Foo en
2 123 Foo fi
3 456 Bar it
4 345 Foo fr

我想选择所有具有相同 parent_idascii_name 的记录,基本上我想要这样:

id  parent_id   ascii_name  lang
1 123 Foo en
2 123 Foo fi

现在我可以选择只有相同 ascii_name 的记录:

id  parent_id   ascii_name  lang
1 123 Foo en
2 123 Foo fi
4 345 Foo fr

使用查询:

SELECT * FROM table WHERE ascii_name in 
(SELECT ascii_name FROM table GROUP By ascii_name
HAVING "count"(ascii_name) > 1)

我不知道如何将 parent_id 放入等式。

更新

我使用@jakub 和@mucio 的答案找到了正确的查询:

SELECT * FROM geo_nodes_copy WHERE (parent_id,ascii_name) in 
(SELECT parent_id, ascii_name
FROM geo_nodes_copy
GROUP By parent_id, ascii_name
HAVING count (1) > 1)

现在,唯一的问题可能是查询速度。

最佳答案

使用下面的查询作为子查询

   SELECT parent_id, 
ascii_name
FROM table
GROUP By parent_id,
ascii_name
HAVING count (1) > 1

这将返回所有多行 parent_id/ascii_name 对。

关于sql - 在 PostgreSQL 中查找比较 2 个字段的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29671548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com