【问题标题】:Average of summed variables in MySQLMySQL中求和变量的平均值
【发布时间】:2013-01-16 14:13:52
【问题描述】:

我有一个MYSQL数据库查询如下:

SELECT name,
SUM(IF(date_format (date, '%b, %Y')= 'Dec, 2011', 1,0)) AS `month1`, 
SUM(IF(date_format (date, '%b, %Y')= 'Jan, 2012', 1,0)) AS `month2`, 
SUM(IF(date_format (date, '%b, %Y')= 'Feb, 2012', 1,0)) AS `month3`, 
etc...
COUNT(*) AS total FROM table order by total

但是,我需要平均从第 1 个月到第 12 个月,而不是总数。

编辑 - 我需要保留求和的数字(month1,2 等),但我还需要计算它们的平均值。

所以,如果第 1-12 个月的结果是 -

55、60、70、54、89、58、68、78、65、89、73、81 总数为 840

我需要计算所有这些数字的平均值 (70)

谢谢

【问题讨论】:

  • 使用 AVG 函数代替 SUM 函数
  • AVG 什么的;您需要按月计算平均值吗?
  • 抱歉,我可能没说清楚。 Month1 的 SUM 会给我带来一个结果,比如 100、Month2 的 SUM、300 等。我需要所有这些 SUM 的平均值 - 即(Month1、Month2、Month3 - 12)的平均值
  • 我建议重写您的查询,使其看起来更像这里的答案:stackoverflow.com/questions/1559201/…

标签: php mysql average


【解决方案1】:
SELECT name,
AVG(IF(date_format (date, '%b, %Y')= 'Dec, 2011', 1,0)) AS `month1`, 
AVG(IF(date_format (date, '%b, %Y')= 'Jan, 2012', 1,0)) AS `month2`, 
AVG(IF(date_format (date, '%b, %Y')= 'Feb, 2012', 1,0)) AS `month3`, 
-- etc...
COUNT(*) AS total FROM table order by total

【讨论】:

    【解决方案2】:

    简单:

    SELECT name,
    AVG(IF(date_format (date, '%b, %Y')= 'Dec, 2011', 1,0)) AS `month1`, 
    AVG(IF(date_format (date, '%b, %Y')= 'Jan, 2012', 1,0)) AS `month2`, 
    AVG(IF(date_format (date, '%b, %Y')= 'Feb, 2012', 1,0)) AS `month3`, 
    etc...
    COUNT(*) AS total FROM table order by total
    

    【讨论】:

    • 抱歉,我可能没说清楚。 Month1 的 SUM 会给我带来一个结果,比如 100、Month2 的 SUM、300 等。我需要所有这些 SUM 的平均值 - 即(Month1、Month2、Month3 - 12)的平均值
    猜你喜欢
    • 1970-01-01
    • 2020-10-02
    • 2017-06-13
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多