MySQL查询仅返回具有计数的重复条目

Posted

技术标签:

【中文标题】MySQL查询仅返回具有计数的重复条目【英文标题】:MySQL query to return only duplicate entries with counts 【发布时间】:2009-02-03 20:02:36 【问题描述】:

我有一个名为 lnk_lists_addresses 的旧 mysql 表,其中包含 list_idaddress_id 列。我想编写一个查询来报告相同list_id-address_id 组合在表中多次出现并计数的所有情况。

我试过了……

SELECT count(*), list_id, address_id
FROM lnk_lists_addresses
GROUP BY list_id, address_id
ORDER BY count(*) DESC
LIMIT 20

它工作,有点,因为有少于 20 个重复。但是我如何只返回大于 1 的计数?

我尝试在GROUP BY 之前和之后添加“WHERE count(*) > 1”,但出现错误,提示该语句无效。

【问题讨论】:

【参考方案1】:
SELECT count(*), list_id, address_id
FROM lnk_lists_addresses
GROUP BY list_id, address_id
HAVING count(*)>1
ORDER BY count(*) DESC

结合我的和 Todd.Run 的答案以获得更“完整”的答案。您想使用 HAVING 子句:

http://dev.mysql.com/doc/refman/5.1/en/select.html

【讨论】:

【参考方案2】:

您想使用“HAVING”子句。 MySQL 手册中解释了它的使用。

http://dev.mysql.com/doc/refman/5.1/en/select.html

【讨论】:

【参考方案3】:
SELECT count(*) AS total, list_id, address_id
FROM lnk_lists_addresses
WHERE total > 1
GROUP BY list_id, address_id
ORDER BY total DESC
LIMIT 20

如果你命名了 COUNT() 字段,你可以在后面的语句中使用它。

编辑:忘记HAVING (>_

【讨论】:

以上是关于MySQL查询仅返回具有计数的重复条目的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 忽略插入错误:重复条目

mysql 计数器 计算不重复

mysql获取具有最大聚合计数的条目

PHP数组不会填充mysql数据[重复]

MySQL 仅输出 n 行并将其余行分组到第 n+1 行

MySQL 查询从表中检索数据和第二个查询以提取其他结果,没有重复