我有列item_name和item_cost。但是,当我想使用avg(item_cost)显示差异时,请始终给我一个错误
不是单组组函数
我只想列出 item_name
,item_cost的列表,并显示每个item_cost使用 avg(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;