簡體   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