我需要计算表中所有行的静态平均值,以比较单个行的值。到目前为止,这是我想出的:
SELECT i.ITEM_NAME, i.ITEM_PRICE
FROM ITEM i
GROUP BY i.ITEM_NAME, i.ITEM_PRICE
HAVING i.ITEM_PRICE > AVG(i.ITEM_PRICE)
ORDER BY i.ITEM_PRICE DESC, i.ITEM_NAME ASC;
我的问题是,仅用于比较该行的平均值(一个数字的平均值)才被用于ITEM_PRICE
计算该行的ITEM_PRICE
平均值。无论如何,在此查询中是否可以获取所有行的静态平均值ITEM_PRICE
以将ITEM_PRICE
每一行的个体与之进行比较?我认为问题可能出在GROUP BY
关联值的方式上,但我不确定。
由于您只想计算所有行的平均值,因此可以放弃分组,而只需使用WHERE
子句将价格与平均值进行比较。代码类似于:
select item_name, item_price
from item
where item_price > (select avg(item_price) from item)
order by item_price desc, item_name asc
当然,这假设您只有一行item_name
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句