[英]Views from Multiple Subqueries MYSQL
我有一個數學代碼,需要兩個子查詢。 下面是代碼的副本。
SELECT AVGTEMP_X.Average_Temp, ProduceMonAvg.Avergae_CPI,
SUM(AVGTEMP_X.Average_Temp) as AVGTEMPSUM,
SUM(ProduceMonAvg.Average_CPI) as PROCPISUM,
SUM(AVGTEMP_X.Average_Temp*AVGTEMP_X.Average_Temp) AS AVGTEMPSQ,
SUM(ProduceMonAvg.Average_CPI*ProduceMonAvg.Average_CPI)PROCPISQ,
SUM(AVGTEMP_X.Average_Temp*ProduceMonAvg.Average_CPI) AS PowerSum,
COUNT(*) as COUNT,
(COUNT*(PowerSum)-(AVGTEMPSUM))/(sqrt(COUNT*(AVGTEMPSQ)-pow(AVGTEMPSUM,2)*
(COUNT*(PROCPISQ)-pow(PROCPISUM,2)))) AS Correlation
FROM(SELECT series_id,FORMAT(AVG(value),2) AS Average_CPI, period
FROM CURRENT
WHERE series_id = 'CUSR0000SEFK'
AND theYear >=(1997)
AND theYear <=(2010)
GROUP BY period) AS ProduceMonAvg,
(SELECT Average_Temp
FROM AVGTEMP_X)
INNER JOIN ProduceMonAvg
ON AVGTEMP_X.period = ProduceMonAvg.period
我說錯了
1146-表'xxx.ProduceMonAvg'不存在
1054-“字段列表”中的未知列“ COUNT”
在外部查詢中,引用ProdcueMonAvg.Average_CPI
等。在內部查詢中,將其別名為AS ProduceMonAvg
。 注意錯字Prodcue
與Produce
。 您確定您的錯誤沒有說Table xxx.ProdcueMonAvg doesn't exist
嗎?
就此而言,您的查詢還有其他幾處問題。 您對AVGTEMP_X查詢的聯接使用的是不需要子查詢的子查詢,它還在執行交叉聯接,然后是內部聯接。 我懷疑那是你想要的。 試試這個:
SELECT AVGTEMP_X.Average_Temp,
ProduceMonAvg.Average_CPI,
SUM(AVGTEMP_X.Average_Temp) AS AVGTEMPSUM,
SUM(ProduceMonAvg.Average_CPI) AS PROCPISUM,
SUM(AVGTEMP_X.Average_Temp * AVGTEMP_X.Average_Temp) AS AVGTEMPSQ,
SUM(ProduceMonAvg.Average_CPI * ProduceMonAvg.Average_CPI) PROCPISQ,
SUM(AVGTEMP_X.Average_Temp * ProduceMonAvg.Average_CPI) AS PowerSum,
COUNT(*) AS TOTAL,
(COUNT(*) * (SUM(AVGTEMP_X.Average_Temp * ProduceMonAvg.Average_CPI)) - (SUM(AVGTEMP_X.Average_Temp))) / (sqrt(COUNT(*)* (SUM(AVGTEMP_X.Average_Temp * AVGTEMP_X.Average_Temp)) - pow(SUM(AVGTEMP_X.Average_Temp), 2) * (COUNT(*)* (SUM(ProduceMonAvg.Average_CPI * ProduceMonAvg.Average_CPI)) - pow(SUM(ProduceMonAvg.Average_CPI), 2)))) AS Correlation
FROM (
SELECT series_id,
FORMAT(AVG(value), 2) AS Average_CPI,
period
FROM CURRENT
WHERE series_id = 'CUSR0000SEFK'
AND theYear >= (1997)
AND theYear <= (2010)
GROUP BY period
) AS ProduceMonAvg
INNER JOIN AVGTEMP_X ON AVGTEMP_X.period = ProduceMonAvg.period
我還創建了一些模擬表和數據,並最終測試了查詢。 它返回結果。 您可以在這里看到它: http : //sqlfiddle.com/#!9/47523/14
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.