mysql - 如何选择非 "unique"行

标签 mysql sql

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

<头>
id idA 信息
0 201 1899
1 205 1955
2 207 1955
3 201 1959

我想获取列 infos 的所有行,这些行在至少两行中具有相同的 idA 值。

上表的查询输出必须是

infos
1899
1959 

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

  • 在不存在的情况下从 XXX 中选择 idA(按 idA 从 XXX 组中选择 *)
  • SELECT * FROM XXX a WHERE NOT EXISTS(SELECT * FROM XXX b WHERE a.RVT_ID=b.RVT_ID GROUP BY idA)

最佳答案

试试这个:

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

您发布的数据的结果:

idaA  infos
201   1899
201   1959

关于mysql - 如何选择非 "unique"行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4519582/

相关文章:

mysql - MySQL中如何计算当前行与上一行之间的时间差

php - 永不结束 for() 和 while() 循环

PHP PDO SQL Server 数据库问题

mysql - SQL 导出的内容无法使用 felixge/node-mysql 正确执行

sql - 对多个表进行 SELECT 查询

mysql - 使用命令行加载.sql文件

php echo来自mysql和日期时间选择的结果

mysql - 我怎样才能优化这个mysql操作?

mysql - 统计生成超过 2 张发票的客户 - mysql

sql - 条件 where 子句 SQL Server 2012