【问题标题】:calculating a sum from an average从平均值计算总和
【发布时间】:2015-06-08 02:54:43
【问题描述】:

我有一个具有以下属性的表; inv_num, inv_amount

我想创建一个查询,显示 inv_num 和 inv_amount 以及 inv_amount 的平均值作为 avg-inv 和 inv_amount-avg_inv 的差异

到目前为止,我能够获得平均值,但我似乎无法弄清楚如何获得计算出的平均值和 inv_amount 之间的差异。

SELECT  inv_num, 
        inv_amount, 
        (select avg(inv_amount) from invoice) as avg_inv
from invoice
; 

【问题讨论】:

  • 请编辑您的问题并提供示例数据和所需结果。

标签: mysql sum average


【解决方案1】:

我建议对内联视图使用 JOIN 操作。例如:

    SELECT i.inv_num 
         , i.inv_amount
         , a.avg_inv
         , i.inv_amount - a.avg_inv   AS diff
      FROM invoice i
     CROSS
      JOIN ( SELECT AVG(t.inv_amount) AS avg_inv
               FROM invoice t
           ) a

内联视图(别名为a)返回单行,列avg_inv。该行与从i 返回的所有行匹配,因此avg_inv 可用于外部查询的SELECT 列表中的表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多