簡體   English   中英

SQL Server'無效列名'錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM