我有一個查詢,返回一個表中列出的每個項目的年份比1980年早的一個分數。1980年後,我有一個類似的年。當我嘗試計算一個減去另一個的平均值,由於某種原因被計算的平均值爲相同(以被忽略我的where子句。我做錯了什麼?似乎我在SQL中的where語句被忽略?
Select avg(stars)
from
(Select stars
from Rating, Movie
where movie.mid = rating.mid and movie.year < 1980);
我有一個查詢,返回一個表中列出的每個項目的年份比1980年早的一個分數。1980年後,我有一個類似的年。當我嘗試計算一個減去另一個的平均值,由於某種原因被計算的平均值爲相同(以被忽略我的where子句。我做錯了什麼?似乎我在SQL中的where語句被忽略?
Select avg(stars)
from
(Select stars
from Rating, Movie
where movie.mid = rating.mid and movie.year < 1980);
更改笛卡爾乘積加入到正規的加盟將是第一步..我們需要看到一些數據來更好地理解這個問題......但繼承人第一次通過
SELECT AVG(stars)
FROM movie
JOIN rating ON rating.mid = movie.mid
WHERE movie.year < 1980
GROUP BY movie.mid
if這不起作用,然後請張貼一些數據,所以我可以測試它
我認爲一個'group by'子句不會失敗 – 2014-10-20 03:38:52
@EdHeal謝謝你,我忘了添加聚合函數lol感謝評論 – 2014-10-20 03:39:47
您的歡迎。沒問題 – 2014-10-20 03:43:23
子查詢有什麼好處? – 2014-10-20 03:31:13