mysql - 在 MySQL 中并排显示所有重复项

标签 mysql group-by duplicates

我有一个这样的表:

Table eventlog
user  |  user_group  | event_date |  event_dur.
----     ----------    ---------     ----------
xyz         1           2009-1-1        3.5
xyz         2           2009-1-1        4.5
abc         2           2009-1-2        5
abc         1           2009-1-2        5

请注意,在上面的示例数据中,唯一可靠的是日期和用户。通过一个 90% 归咎于我的网站,我设法让用户复制他们的日常条目。在某些情况下,重复项旨在更新其持续时间,在其他情况下,他们试图更改当天使用的 user_group,而在其他情况下,两者都是。

幸运的是,我非常清楚哪些记录是正确的(因为这是对旧系统的更新)。 (基本上,这一切都是为了将​​旧数据库与新数据库无缝合并)。

不幸的是,我必须或多或少地手动执行此操作,否则可能会丢失仅存在于一侧而不存在于另一侧的数据....

长话短说,我正在尝试找出正确的 MySQL 查询,以返回在任何给定日期具有多个用户条目的所有记录。我一直在与 GROUP BY 和 HAVING 作斗争,但我能得到的最好的结果是两个重复项之一的列表,每个重复项,如果我确定它是错误的,那就太好了。

这是我最接近的:

SELECT *
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(user) > 1
ORDER BY event_date, user

对此的任何帮助都将非常有用。如果需要,我有每组重复项的用户/日期列表,因此我可以手动删除所有 400 个,但我更愿意一次看到它们。

谢谢!

最佳答案

这行得通吗?

SELECT event_date, user
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(*) > 1
ORDER BY event_date, user

让我失望的是你的 COUNT(user) 子句。

关于mysql - 在 MySQL 中并排显示所有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392012/

相关文章:

php - 通过设置脚本在 Magento 1.9.2 中创建类别属性

javascript - 如何在 Aurelia 中按过滤器进行分组

Java - 保存到txt文件重复第一个条目

php - MYSQL Join Query Multiple Tables 部分字段显示重复结果

MySQL 慢查询 - 排序依据

mysql - 当元组的一部分在另一个表中使用时,无法删除关系表中的元组(但整个元组不在该其他表中)

mysql - 即使使用索引,从 10 亿行表中匹配 1 亿行的 SELECT COUNT 查询也需要 30 秒

sql - 错误 : Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

swift - 根据对象标识删除重复的类实例

mysql - MySQL 中何时使用单引号、双引号和反引号