mysql - SQL 仅选择最多有 1 个重复项的行

标签 mysql

我正在使用一些 SQL,并试图弄清楚如何选择最多 1 个重复的行。

假设我有一张如下所示的表格:

CODE:
1234567
1234567
1234567
4567890
4567890
2414351

然后我只想显示最多有 1 个重复项的那些行,因此结果应该显示:

CODE:
4567890
4567890
2414351

尝试过使用 max 和 count 函数,但似乎无法产生正确的结果。

最佳答案

您希望代码只出现一次,或者最多有一个重复项:

SELECT t1.CODE
FROM yourTable t1
INNER JOIN
(
    SELECT CODE
    FROM yourTable
    GROUP BY CODE
    HAVING COUNT(*) <= 2
) t2
    ON t1.CODE = t2.CODE

输出:

enter image description here

此处演示:

Rextester

关于mysql - SQL 仅选择最多有 1 个重复项的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44647435/

相关文章:

php - 如何在php中分解传入的短信并将其插入数据库

php - PDO高级搜索查询构建问题

mysql - 大数据量执行速度更快吗[MySQL]

mysql - 错误: Column cannot be null (I have used primary key with auto_increment)

MySQL 存储过程列名连接语法

mysql - 如果我截断一个表,我是否也应该添加索引

mysql - Lua mySQL更新语句和where子句

sql - 导入部分 MySQL 转储(不是全部)

MySql:同一张表上的硬匹配

mysql - Prestashop 导入 CSV 错误 - PRIMARY key 条目重复