MySQL查询仅返回具有计数的重复条目
Posted
技术标签:
【中文标题】MySQL查询仅返回具有计数的重复条目【英文标题】:MySQL query to return only duplicate entries with counts 【发布时间】:2009-02-03 20:02:36 【问题描述】:我有一个名为 lnk_lists_addresses
的旧 mysql 表,其中包含 list_id
和 address_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查询仅返回具有计数的重复条目的主要内容,如果未能解决你的问题,请参考以下文章