我有列item_name和item_cost。但是,当我想使用AVG(item_cost)显示差异时总是给我一个错误
不是单组的功能
我只是想制作一个item_name
,item_cost的列表,并使用avg(item-cost) - item_cost
显示每个item_cost与所有item_cost的平均值的差异。
这是我的查询语法。我的语法有什么问题?
SELECT item_name,
item_cost,
AVG(item_cost) AS Avgcost,
AVG(item_cost)-item_cost AS Difference
FROM item;
你可以使用OVER ()
条款
SELECT item_name,
item_cost,
AVG(item_cost) OVER () AS Avgcost,
AVG(item_cost) OVER () -item_cost AS Difference
FROM item;
这是另一种选择,没有分析功能。
WITH avgcost AS (SELECT AVG (item_cost) avg_cost FROM item)
SELECT i.item_name,
i.item_cost,
a.avg_cost,
a.avg_cost - i.item_cost diff_cost
FROM item i, avgcost a;