[英]SQL Server 'invalid column name' error
我(從imdb數據庫)有一個casts
表和一個movie
表。 我正在嘗試找到具有最大演員(不同演員)的電影的名稱和演員大小。
這就是我想出來的,但我得到了一個
“totalcount”上的“無效列名”錯誤
為什么?
此外,這個查詢看起來是否合適?
select name, count(distinct pid) as totalcount
from casts join movie on mid=movie.id
where totalcount =
(select max(CastCount.total)
from (select count(distinct pid) as total from casts group by mid)CastCount)
group by name;
您不能在WHERE
使用別名。 由於它是聚合的,你應該用HAVING
替換它: HAVING totalcount = ...
此外,你的子查詢可能返回超過1行,你將有另一個錯誤。
在MySQL中,您不能通過WHERE子句中的別名引用別名列。
您最好的選擇不是選擇計數等於所選最大值的位置。 相反,按計數從高到低排序,並限制到第一行。
像這樣的東西?
SELECT movie.name, COUNT(casts.id) AS castsize
FROM cast
JOIN movie
ON movie.id = casts.mid
GROUP BY casts.mid
HAVING COUNT(casts.id) = MAX(COUNT(casts.id))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.