从平均值计算总和

时间:2015-06-08 02:54:44

标签: mysql sum average

我有一个包含以下属性的表; inv_numinv_amount

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

的差异

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

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

1 个答案:

答案 0 :(得分: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列表中的表达式。