大多数连接的“顶点”的SQL查询

时间:2016-06-21 16:01:42

标签: sql

查询连接最多的顶点/元组是什么样的 - 谁是电影最多的演员?

例如,再次电影和演员样本表:

Movies (moviesID, title)
Actors (actorsID, name)
Relations (moviesID, actorsID) 

可能使用内连接?一个例子很棒 - 谢谢

2 个答案:

答案 0 :(得分:1)

如果您只想要actorsId,则无需加入:

select top 1 actorsId, count(*) as nummovies
from relations r
group by actorsId
order by nummovies desc;

因为可能存在重复项,您可能需要top 1 with ties

select top 1 with ties actorsId, count(*) as nummovies
from relations r
group by actorsId
order by nummovies desc;

此外,由于演员可以在同一部电影中拥有多个角色,如果数据库中有不同的角色,请选择count(distinct)

select top 1 with ties actorsId, count(distinct moviesId) as nummovies
from relations r
group by actorsId
order by nummovies desc;

答案 1 :(得分:0)

SELECT TOP 1
            A.actorsID, A.name, COUNT(R.moviesID) AS MovieCount
FROM        Actions     A
INNER JOIN  Relations   R       ON A.actorsID = R.actorsID
GRROUP BY   A.actorsID, A.name
ORDER BY    MovieCount DESC