繁体   English   中英

如何计算表中所有行的静态平均值以将单个行值与Oracle SQL中的值进行比较

[英]How to calculate a static average value of all rows in a Table to compare individual row values to in Oracle SQL

我需要计算表中所有行的静态平均值,以比较单个行的值。 到目前为止,这是我想出的:

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仅一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM