【问题标题】:MySQL: how to get records with count > 1?MySQL:如何获取计数 > 1 的记录?
【发布时间】:2010-12-21 19:49:23
【问题描述】:

我有一个这样的 sql:

SELECT *, count(*) as cc 
FROM manytomany 
GROUP BY aid, bid
ORDER BY cc DESC

返回计数为 # 的所有记录。

但是,如果我只想获取 count > 1 的那些,我该怎么办?

【问题讨论】:

    标签: mysql select count


    【解决方案1】:

    HAVING 子句

       SELECT *, count(*) as cc 
        FROM manytomany 
        GROUP BY aid, bid
        HAVING cc > 1
        ORDER BY cc DESC
    

    【讨论】:

      【解决方案2】:

      你需要一个HAVING 子句,例如:

      SELECT *, count(*) as cc 
      FROM manytomany 
      GROUP BY aid, bid
      HAVING COUNT(*) > 1
      ORDER BY cc DESC
      

      这里有一些background

      【讨论】:

        【解决方案3】:
        SELECT *, count(*) as cc 
        FROM manytomany 
        GROUP BY aid, bid
        HAVING cc>1
        ORDER BY cc DESC
        

        【讨论】:

          【解决方案4】:

          你使用了having子句。

          SELECT *, count(*) as cc
          FROM manytomany
          GROUP BY aid, bid
          HAVING count(*) > 1
          ORDER BY cc DESC
          

          【讨论】:

            【解决方案5】:
            SELECT *, count(*) as cc 
            FROM manytomany 
            GROUP BY aid, bid
            HAVING COUNT(*) > 1
            ORDER BY cc DESC
            

            我不使用 MySQL,但它应该支持 HAVING - 它已经存在很长时间了。

            【讨论】:

              【解决方案6】:
              SELECT *, count(*) as cc 
              FROM manytomany 
              GROUP BY aid, bid
              HAVING 1 < count(*)
              ORDER BY cc DESC
              

              【讨论】:

              • 我从来没有把它写成HAVING 1 &lt; count(*),但它可以工作。
              • 为什么要将 1 放在表达式的左侧?当然,这在逻辑上是一致的,但只是好奇......
              • 可读性。如果中缀运算符更接近表达式的开头,则更容易快速掌握表达式的结构:1 &lt; bla-bla-bla-bla... 而不是bla-bla-bla-bla &gt; 1
              • 很好的答案,虽然我不得不在可读性点上不同意。对我来说,至少count &gt; 11 &lt; count 更具可读性(同样重要的是,更直观 可读)。如果bla-bla-bla...count 长得多,您可能会有一点意见,但在这种情况下,您可能希望使用AS bla 对其进行别名,然后使用bla &gt; 1,以获得最大的可读性。
              • @gahooa 在 = 和 == 之间存在语言差异的情况下,在使用的 = 符号的数量中不容易发现拼写错误。养成将数字放在左侧的习惯有助于识别这些错误早在...例如.. if ($aardvarks = 1) 有效但 if (1 = $aardvarks) 无效。一致性需要表明所有测试都将这样编写,并且“习惯”得到传递。就个人而言,我觉得它的可读性较差,但我仍然尝试将数字放在左侧以“安全”
              猜你喜欢
              • 1970-01-01
              • 2017-05-21
              • 1970-01-01
              • 1970-01-01
              • 2018-09-26
              • 1970-01-01
              • 1970-01-01
              • 2021-07-30
              • 1970-01-01
              相关资源
              最近更新 更多