我想獲得average
的計算sum
。我從this stackoverflow answer嘗試過的語法所以我的SQL查詢如下所示:SUM的SQL AVG
SELECT AVG(iq.stockvalue_sum), iq.date
FROM(
SELECT CONCAT(DATE_FORMAT(s.date, '%Y'), '-01-01') as date,
SUM(GREATEST(s.stockvalue,0)) as stockvalue_sum
FROM stockvalues s
GROUP BY CONCAT(DATE_FORMAT(s.date, '%Y'), '-01-01')
) iq
然而,這是不是給我一個正確的平均值。我想要得到每年平均stockvalue
。該表背後的想法是每天保存每種產品的庫存和庫存價值。因此,此特定查詢將顯示其數據每年的平均股價。
編輯:樣本輸出數據
Stockvalue | Year
_________________
- 205 | 2015
- 300 | 2014
輸入數據:
pid | val | date
______________________
- 1 | 100 | 28-04-2015
- 2 | 150 | 28-04-2015
- 1 | 80 | 27-04-2015
- 2 | 80 | 27-04-2015
....
- 1 | 100 | 29-01-2014
- 2 | 100 | 29-01-2014
- 1 | 200 | 30-01-2014
- 2 | 200 | 30-01-2014
所以我需要計算知道total
stockvalue的平均值。因此,對於X日所有stockvalues之和X
你的外部查詢是由缺少一組,但由於邏輯分組列('iq.date')與內部查詢相同,沒有多大意義,即你的內部查詢每年只返回一個結果,所以取這一行的平均值是毫無意義的。因此,我對你的要求有點困惑,或許一些樣品數據和預期產量會有所幫助? – GarethD
@GarethD我添加了一些樣本數據 – Bram
沒有樣本輸入,樣本輸出沒有幫助。我的觀點是,我不明白爲什麼你需要'SUM',你能不能直接做一個平均值,所以把SUM(GREATEST(s.stockvalue,0))改爲'AVG(GREATEST(s) .stockvalue,0))',並完全擺脫外部查詢。 – GarethD