gpt4 book ai didi

mysql - SQL:查找 A 列中的记录与 B 列中的重复记录

转载 作者:行者123 更新时间:2023-11-29 06:42:15 24 4
gpt4 key购买 nike

我想知道你是否可以帮助我解决我遇到的 SQL 问题。

我的 table 看起来像

ID    ColumnA     ColumnB
1 123 A
2 123 A
3 123 B
4 456 A
5 456 B
6 456 B
7 789 A
8 789 B
9 789 C

我想识别 ColumnA 中与 ColumnB 中重复的所有记录,因此查询应返回

ID    ColumnA     ColumnB
1 123 A
2 123 A
5 456 B
6 456 B

提前非常感谢。干杯

最佳答案

如果您有可用的分析函数(MySQL 8.x 及更高版本),则使用它们:

SELECT ID, ColumnA, ColumnB
FROM
(
SELECT *, COUNT(*) OVER (PARTITION BY ColumnA, ColumnB) cnt
FROM yourTable
) t
WHERE cnt > 1;

如果您没有分析函数,那么我们必须做更多的工作:

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT ColumnA, ColumnB, COUNT(*) AS cnt
FROM yourTable
GROUP BY ColumnA, ColumnB
) t2
ON t1.ColumnA = t2.ColumnA AND t1.ColumnB = t2.ColumnB AND t2.cnt > 1;

关于mysql - SQL:查找 A 列中的记录与 B 列中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51075964/

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