如何在MySQL中的不同组中查找重复对

时间:2019-05-23 10:06:06

标签: php mysql

我在MySQL表中有数据:

+-----+----+-------------+
| id  | n1 | n2          |
+-----+----+-------------+
|  1  |  A |  1111111111 |
|  2  |  A |  2222222222 |
|  3  |  B |  1111111111 |
|  4  |  C |  1111111111 |
|  5  |  C |  4444444444 |
|  6  |  C |  3333333333 |
|  7  |  B |  2222222222 |
|  8  |  B |  3333333333 |
|  9  |  D |  2222222222 |
|  10 |  D |  4444444444 |
|  11 |  D |  1111111111 |
+-----+----+-------------+

需要检查“ n2”中从一组“ n1”到另一组“ n1”中相同的值。如果是这样,请安排它们并计算:

+-----+----+-------------+
| id  | n1 | n2          |
+-----+----+-------------+
|  1  |  A |  1111111111 |
|  2  |  A |  2222222222 |
|  3  |  B |  1111111111 |
|  7  |  B |  2222222222 |
|  9  |  D |  2222222222 |
|  11 |  D |  1111111111 |

|  3  |  B |  1111111111 |
|  8  |  B |  3333333333 |
|  4  |  C |  1111111111 |
|  6  |  C |  3333333333 |

|  4  |  C |  1111111111 |
|  5  |  C |  4444444444 |
|  11 |  D |  1111111111 |
|  10 |  D |  4444444444 |
+-----+----+-------------+

1111111111/2222222222-在“ n1” A,B,D中重复3次
1111111111/3333333333-在“ n1” B,C中2次
1111111111/4444444444-在“ n1” C,D中进行2次

请帮助操作。

1 个答案:

答案 0 :(得分:0)

您可能希望将GROUP BYHAVING COUNT(n2) > 1一起使用。

SELECT n1, n2, COUNT(n2) as cnt
FROM table
GROUP BY n2, n1
HAVING COUNT(n2) > 1