首页 > 解决方案 > 我想找到已经租借的电影比“Silverado”还多?需要输出:标题和租用次数

问题描述

我试图找出一部电影是否比“Silverado”租得更多。我需要输出:标题和租用次数。

出租数据库

mmmovie db

SELECT MOVIE_TITLE, movie_value 
FROM mm_movie 
WHERE MOVIE_TITLE >= (SELECT MOVIE_TITLE 
FROM mm_movie 
WHERE UPPER(MOVIE_TITLE)='Silverado');

使用此代码,我得到输出:未找到数据。我究竟做错了什么?

标签: sqloracle

解决方案


您可以JOIN使用这两个表,然后使用GROUP BY和聚合来查找计数,然后使用条件分析函数比较 Silverado 被租用的次数:

SELECT movie_id, movie_title
FROM   (
  SELECT m.movie_id,
         MAX(m.movie_title) AS movie_title,
         COUNT(r.movie_id) AS times_rented,
         MAX(
           CASE MAX(m.movie_title) WHEN 'Silverado' THEN COUNT(r.movie_id) END
         ) OVER ()
           AS times_silverado_rented
  FROM   mm_movie m
         LEFT OUTER JOIN mm_rental r
         ON ( m.movie_id = r.movie_id )
  GROUP BY m.movie_id
)
WHERE times_rented > times_silverado_rented

(注意:如果 Silverado 被租用了零次,这应该仍然有效。)

db<>在这里摆弄


推荐阅读