2014-10-20 76 views
0

我有一個查詢,返回一個表中列出的每個項目的年份比1980年早的一個分數。1980年後,我有一個類似的年。當我嘗試計算一個減去另一個的平均值,由於某種原因被計算的平均值爲相同(以被忽略我的where子句。我做錯了什麼?似乎我在SQL中的where語句被忽略?

Select avg(stars) 
from 
(Select stars 
from Rating, Movie 
where movie.mid = rating.mid and movie.year < 1980); 
+1

子查詢有什麼好處? – 2014-10-20 03:31:13

回答

1

更改笛卡爾乘積加入到正規的加盟將是第一步..我們需要看到一些數據來更好地理解這個問題......但繼承人第一次通過

SELECT AVG(stars) 
FROM movie 
JOIN rating ON rating.mid = movie.mid 
WHERE movie.year < 1980 
GROUP BY movie.mid 

if這不起作用,然後請張貼一些數據,所以我可以測試它

+1

我認爲一個'group by'子句不會失敗 – 2014-10-20 03:38:52

+0

@EdHeal謝謝你,我忘了添加聚合函數lol感謝評論 – 2014-10-20 03:39:47

+0

您的歡迎。沒問題 – 2014-10-20 03:43:23