【问题标题】:mySQL query to find duplicate row查找重复行的 mySQL 查询
【发布时间】:2010-10-05 09:14:59
【问题描述】:

示例:

[empid    date      bookid]
----------
1        5/6/2004   8

2        5/6/2004   8

1        5/7/2004   8

1        5/8/2004   6

3        5/8/2004   8

2        5/8/2004   7

在此表中,我需要将 empid 1 作为输出..因为它不止一次具有 bookid 8..

提前谢谢..

【问题讨论】:

  • 您确定不想按empidbookiddate 分组吗?日期的含义可能很重要。

标签: sql duplicates row


【解决方案1】:

你可以使用:

SELECT DISTINCT id
FROM table
GROUP BY empid, bookid
HAVING COUNT(*) > 1

但它会给你重复。例如,如果您有 1-8,1-8,1-9,1-9,您将得到 1,1 作为输出,因为 empid 1 对于两个不同的 bookid 值具有重复的 bookid。您需要使用SELECT DISTINCT 过滤掉重复的empid。

【讨论】:

  • Alin Purcaru,感谢您的回答..如果我添加不同的,查询将正确无误.. SELECT DISTINCT id FROM table GROUP BY empid, bookid HAVING COUNT(*) > 1
【解决方案2】:
SELECT empid
from table
group by empid
having Count(distinct bookid) > 1

【讨论】:

  • 您选择了具有多个不同 bookid 的 empid,该问题多次询问具有相同 bookid 的 empid。您的查询将输出 1 和 2,而不仅仅是 1。
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
相关资源
最近更新 更多