首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到演员数量最少的电影甲骨文

如何找到演员数量最少的电影甲骨文
EN

Stack Overflow用户
提问于 2015-04-08 21:52:10
回答 3查看 56关注 0票数 0

因此,我有一个名为Cast的表,其中包含film_idnumber_of_actors。我有一个包含电影nameyear.film表,我需要创建子查询,它将找到哪部电影中的演员数量最少,并输出电影的名称。但是我不能使用joins。

我该怎么做??

到目前为止,我有:

代码语言:javascript
复制
 SELECT c.number_of_actors, count(*), f.name
   FROM cast c, film f
  where f.id = (SELECT min(c.number_of_Actors)
   from cast
  group by number_of_Actors;

我刚接触甲骨文,所以这可能真的是错的。但任何帮助都是最好的。

EN

回答 3

Stack Overflow用户

发布于 2015-04-08 22:24:20

代码语言:javascript
复制
WITH ranked_cast_sizes AS (
  SELECT film_id,
         RANK() OVER ( ORDER BY number_of_actors ASC ) AS cast_size_rank
  FROM   cast
)
SELECT f.name
FROM   film f
       INNER JOIN
       ranked_cast_sizes r
       ON ( f.id = r.film_id )
WHERE  r.cast_size_rank = 1;

或者是一种不带连接的不同方式:

代码语言:javascript
复制
SELECT f.name
FROM   film f
WHERE  EXISTS ( SELECT 'X'
                FROM   cast c
                WHERE  f.id = c.film_id
                AND    c.number_of_actors = ( SELECT MIN( number_of_actors)
                                              FROM   cast )
              );
票数 1
EN

Stack Overflow用户

发布于 2015-04-09 03:33:07

由于您不能使用joins (摇头晃脑),因此您可以执行以下操作:

代码语言:javascript
复制
SELECT name, year
  FROM film
 WHERE id IN (
    SELECT film_id FROM (
        SELECT film_id, RANK() OVER ( ORDER BY number_of_actors ) AS rn
          FROM cast
    ) WHERE rn = 1
);

请注意,这将返回演员数量最少的所有电影。如果使用ROW_NUMBER()而不是RANK() (或者,也可以使用基于ROWNUM的解决方案),则无论有多少影片的演员数量最少,都只能得到一部影片。

票数 1
EN

Stack Overflow用户

发布于 2015-04-08 22:44:36

下面的代码将执行您想要的操作:

代码语言:javascript
复制
SELECT *
  FROM (SELECT f.NAME, c.NUMBER_OF_ACTORS
          FROM FILM f
          INNER JOIN CAST c
            ON c.FILM_ID = f.ID
          ORDER BY c.NUMBER_OF_ACTORS)
  WHERE ROWNUM = 1

我们在这里做的是将电影和演员表连接在一起,以允许我们获得电影名称和演员数量,并根据演员数量对连接的数据进行排序,以便首先返回演员数量最少的电影。然后,外层select用于剥离由子查询返回的第一行,结果只有一行包含电影中演员数量最少的演员的姓名和数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29516649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档