代码之家  ›  专栏  ›  技术社区  ›  Ethan

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

  •  1
  • Ethan  · 技术社区  · 15 年前

    我有一个旧的mysql表,名为 lnk_lists_addresses 带柱 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的计数?

    我试图添加“ WHERE count(*) > 1 “之前和之后 GROUP BY 但在声明无效时出错。

    3 回复  |  直到 15 年前
        1
  •  8
  •   brendan    15 年前
    SELECT count(*), list_id, address_id
    FROM lnk_lists_addresses
    GROUP BY list_id, address_id
    HAVING count(*)>1
    ORDER BY count(*) DESC
    

    把我的答案和托德的答案结合起来。运行的答案得到一个更“完整”的答案。您要使用HAVING子句:

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

        2
  •  2
  •   Todd R    15 年前

    您想使用“having”子句。它的使用在mysql手册中进行了解释。

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

        3
  •  1
  •   TJ L    15 年前
    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 (& gt;& & lt;)