我有一个包含以下属性的表; inv_num
,inv_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
;
答案 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列表中的表达式。