【问题标题】:Average of sums in MySQLMySQL中总和的平均值
【发布时间】:2014-07-19 22:07:13
【问题描述】:

我有一张这样的桌子:

+----------+-----------+--------+
| BookCode | BranchNum | OnHand |
+----------+-----------+--------+
| 0180     |         1 |      2 |
| 0189     |         2 |      2 |
| 0200     |         1 |      1 |
| 0200     |         2 |      3 |
| 0378     |         3 |      2 |
| 079X     |         2 |      1 |
| 079X     |         3 |      2 |
| 079X     |         4 |      3 |
| 0808     |         2 |      1 |
| 1351     |         2 |      4 |
| 1351     |         3 |      2 |

etc etc

我基本上想对每个 BranchNum 进行求和(OnHand),然后对所有 BranchNum 中的每一个求和。我在这个网站上阅读的其他示例似乎有比这更复杂的条件,我只需要使用 avg.最简单的方法是什么?

【问题讨论】:

    标签: mysql sql sum average


    【解决方案1】:

    您实际上可以一步完成:

    select sum(onhand) / count(distinct branchnum) as avg_per_branchnum
    from atablelikethis;
    

    【讨论】:

    • 很简洁,谢谢。难道没有更大的函数来求和的平均值吗?
    • @user3856804 。 . .没有。有一个函数可以获取列的平均值,但仅此而已。
    【解决方案2】:
    select avg(sum_onhand) as avg_onhand
    from
    (
        select branchnum, sum(onhand) as sum_onhand
        from your_table
        group by branchnum
    ) tmp_tbl
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      相关资源
      最近更新 更多