【问题标题】:MySQL query - using SUM of COUNTMySQL 查询 - 使用 COUNT 的总和
【发布时间】:2023-04-04 20:25:01
【问题描述】:

这个查询:

SELECT COUNT(source) AS count
FROM call_details
GROUP BY source
HAVING count >1

仅返回 1500 个(我要查找的数字)结果,其中包含计数字段。我怎样才能返回所有计数字段的总和?当我尝试时

SELECT COUNT(source) AS count,
SUM(count) as total
FROM call_details
GROUP BY source
HAVING count >1

我在“字段列表”错误中收到“未知列“计数”。

和

SELECT COUNT(source) AS count,
SUM(COUNT(source)) as total
FROM call_details
GROUP BY source
HAVING count >1

给我一​​个“组函数的无效使用”

有什么想法吗?我可以做一个mysql_num_rows($result) 的第一组(以获取我需要的信息),但我真的想通过 MySQL 来做。

【问题讨论】:

    标签: mysql


    【解决方案1】:
    SELECT COUNT(count) FROM (SELECT COUNT(source) AS count
    FROM call_details
    GROUP BY source
    HAVING count > 1) as A
    

    【讨论】:

    • 该查询成功执行,但它返回一个看似随机的数字 (4999)。自己运行的子查询中的查询返回 1320。但是当我将它包装在外部 select 语句中时,它返回 4999。
    • 其实这真的很接近。而不是 SUM(count) 我做了 COUNT(count) 它返回了我正在寻找的东西。 :D 如果你编辑你的答案,我会接受它
    • 我改变了,但我认为这将返回有 2 个或更多调用的数字源,而不是总和。这是你想要的吗?
    • 是的,这正是我想要的。我正在寻找的字段是“重复呼叫”
    • @Paulpro 我也有类似的问题stackoverflow.com/questions/40433497/…
    【解决方案2】:

    您无法在行上下文中获得全局总计。在任何特定行上完成 COUNT() 时,SUM 没有任何内容,因为尚未计算其他行。

    您必须先运行 SUM 查询以获取您的个人统计信息,然后在脚本中手动求和,或者使用周围的 SUM 子句重新运行查询:

    SELECT SUM(count) FROM (
       SELECT original query here...
    )
    

    【讨论】:

    • 很好的解决方案!
    【解决方案3】:

    试试这个

    select mycount, sum(mycount) as sumcount
    from
    (SELECT COUNT(source) AS mycount FROM call_details GROUP BY source HAVING mycount >1)   counttable 
    

    【讨论】:

    • “有条款”编辑中的“计数”列未知:您似乎忘记将有条款中的计数更改为 mycount。它在那之后运行,但它仍然返回 4999。
    • 已编辑,应该是mycount。对不起。
    【解决方案4】:

    假设您无论如何都要获取应用程序中的所有结果,我认为最有效的方法是将其总结在应用程序代码中。

    【讨论】:

      【解决方案5】:

      只需删除重要的选择查询中的“分组依据”子句

      # first, get your counts by source
      SELECT COUNT(source) AS count
      FROM call_details
      GROUP BY source
      HAVING count >1
      
      # then, get the overall total
      SELECT COUNT(source) AS count
      FROM call_details
      HAVING count >1
      

      【讨论】:

        猜你喜欢
        • 2012-04-17
        • 2012-01-28
        • 1970-01-01
        • 2011-06-23
        • 1970-01-01
        • 1970-01-01
        • 2012-04-13
        • 2012-10-07
        • 1970-01-01
        相关资源
        最近更新 更多