我是新手,所以忍受我。
我正在尝试从Movie
数据库创建一个选择查询。在其他表中,有一个Role
表,其中包含roleID, roleName, gender, actorID, movieID
等信息。演员可以在不同的电影中扮演很多角色。
我正在尝试创建查询,因此它会告诉我有多少actor在数据库中有三个或更多角色。
我尝试了一些解决方案并且输出的数据不确定它是否正确。
SELECT COUNT (DISTINCT actorID) FROM Role WHERE actorID >= 3
SELECT COUNT (actorID) FROM Role GROUP BY movieID HAVING COUNT (actorID) >=3
答案 0 :(得分:9)
尝试类似:
select actorID, count(*)
from Roles
group by actorID
having count (*) >= 3
如果要检索有关actor的其他属性,请将其添加到select和group by子句
答案 1 :(得分:7)
尝试:
SELECT COUNT(*) FROM Role
GROUP BY actorid
HAVING COUNT(*) >= 3
答案 2 :(得分:2)
请尝试以下
SELECT actorID, COUNT(actorID)
FROM Role
GROUP BY actorID
HAVING COUNT (actorID) >=3
答案 3 :(得分:2)
试试这个..
SELECT COUNT(*)
FROM (SELECT actorID FROM Roles GROUP BY actorID HAVING COUNT(*)>=3) AS actor;
此查询返回在数据库中具有三个或更多角色的actor的数量。
答案 4 :(得分:1)
你的第二个查询几乎是正确的。
您需要按actorId分组,因为您想要计算它们。你已经放了movieId,在这种情况下毫无意义。
SELECT COUNT (*) as actorRoles
FROM Role
GROUP BY actorId
HAVING actorRoles >=3;
答案 5 :(得分:1)
select count(*)
from Role
where actorID in
(
select actorID
from Role
group by actorID
having count(actorID) > 3
)