SQL SELECT QUERY COUNT

时间:2012-03-29 11:07:25

标签: sql

我是新手,所以忍受我。

我正在尝试从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

6 个答案:

答案 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
         )