sql - 返回所有重复行

标签 sql sqlite select group-by duplicates

我编写了这段代码来查找重复项,它工作正常:

SELECT *
FROM StyleTable 
GROUP BY Color
HAVING count(*) > 1 

问题是,它只返回重复行之一。是否可以返回所有重复的行?我猜它可能与“GROUP BY”有关,但我不确定如何更改它。我不想删除这些值,只是返回它们。

最佳答案

我认为您必须再次加入表才能获得重复项。像这样的东西:

SELECT * 
FROM StyleTable 
WHERE Color IN (
  SELECT Color  
  FROM StyleTable   
  GROUP BY Color  
  HAVING count(*) > 1 
)     

关于sql - 返回所有重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9574851/

相关文章:

mysql - 使用 GROUP BY 从表中选择 MAX()

MySQL Year() 无法正常工作

mysql - 获取 MySQL 中分层类别的所有父级

插入时可以进行 SQL 排序吗?

android - 在 Intent 之间传递数据库连接

php - MySQL从多个不相关的表中选择数据

sql - rails 范围检查关联是否不存在

Php, Mysql Select from table where row = ?有可能的?

django - 导入错误 : No module named '_sqlite3' in python3. 3

SQLite "INDEXED BY"在 SELECT 中不工作