如何选择非"唯一"行

Adr*_*enG 22 mysql sql

我有下表,我必须从中获取非唯一行

+------+------+------+
| id   | idA  |infos |
+----- +------+------+
| 0    | 201  | 1899 |
| 1    | 205  | 1955 |
| 2    | 207  | 1955 |
| 3    | 201  | 1959 |
+------+------+------+
Run Code Online (Sandbox Code Playgroud)

我想获取列的所有行infos,它们idA在至少两行中具有相同的值.

必须输出上表的查询

infos
1899
1959 
Run Code Online (Sandbox Code Playgroud)

我尝试了以下请求但没有成功:

  • SELECT idA FROM XXX WHERE NOT EXISTS(SELECT * FROM XXX GROUP BY idA)
  • SELECT * FROM XXX a WHERE NOT EXISTS(SELECT * FROM XXX b WHERE a.RVT_ID=b.RVT_ID GROUP BY idA)

Mar*_*ers 36

试试这个:

SELECT T1.idA, T1.infos
FROM XXX T1
JOIN
(
    SELECT idA
    FROM XXX
    GROUP BY idA
    HAVING COUNT(*) >= 2
) T2
ON T1.idA = T2.idA
Run Code Online (Sandbox Code Playgroud)

您发布的数据的结果:

idaA  infos
201   1899
201   1959


jud*_*dda 33

这样的事情应该有效:

SELECT idA, COUNT(*) FROM XXX GROUP BY idA HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)


小智 6

SELECT id, idA, COUNT(infos) AS cnt
FROM mytable
GROUP BY infos
HAVING cnt > 1
Run Code Online (Sandbox Code Playgroud)