【问题标题】:How to find the average of a count result in MySQL?如何在 MySQL 中找到计数结果的平均值?
【发布时间】:2012-11-25 21:47:30
【问题描述】:

我想从计数结果中得到 AVG。

SELECT labelname AS Record_Labels, COUNT(title) AS Number_of_CDs_Released FROM CD
JOIN RecordLabel ON labelname = released_by
GROUP BY labelname;             

我试过这样做:AVG(COUNT(title)),但没有用。有谁能帮帮我吗?

【问题讨论】:

  • 欢迎来到 Stack Overflow! ;)
  • 我试过谷歌搜索。但是给出的答案都是子查询,我想用JOIN试试。
  • 那是因为这样做的逻辑方法是使用子查询。为什么要改为使用联接?您没有尝试加入,您尝试了聚合但失败了。最初的问题只字未提想要使用 join。
  • 啊,是的,我的问题措辞很糟糕。我一直在用 JOIN 来练习它,直到最近才开始学习子查询。所以现在我不仅要使用子查询,还要使用 JOINS 来做我的练习,因为我认为它可以帮助我更好地理解 SQL。

标签: mysql sql count average


【解决方案1】:

您可以使用嵌套查询来执行此操作:

select avg(Number_of_CDs_Released) from
(SELECT labelname AS Record_Labels, COUNT(title) AS Number_of_CDs_Released FROM CD
JOIN RecordLabel ON labelname = released_by
GROUP BY labelname) nested;

【讨论】:

  • 感谢您的回答。但是我该怎么做才能使每行 labelname 的 AVG 而不是所有标签名称的 AVG?
  • 这对我来说没有意义。您正在计算唯一标签名称。平均做一件事会给你同样的事情——计数。对整个表进行平均可以得到计数的平均值。也许您可以返回并用您实际想要做的示例来编辑您的原始问题?
  • 你救了我,对不起。我读错了这个问题,很糟糕。我以为它要我找到每个唱片公司的 AVG 版本,但它只是唱片公司发行的 CD 的 AVG。看代码是一个漫长的夜晚:(我会回答你的问题,但我不允许,但是,我已经勾选了。再次感谢!
  • 非常感谢!拯救了我的一天
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多