sql - 我想找到已经租借的电影比“Silverado”还多?需要输出:标题和租用次数
问题描述
我试图找出一部电影是否比“Silverado”租得更多。我需要输出:标题和租用次数。
SELECT MOVIE_TITLE, movie_value
FROM mm_movie
WHERE MOVIE_TITLE >= (SELECT MOVIE_TITLE
FROM mm_movie
WHERE UPPER(MOVIE_TITLE)='Silverado');
使用此代码,我得到输出:未找到数据。我究竟做错了什么?
解决方案
您可以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<>在这里摆弄
推荐阅读
- java - ContextRefreshedEvent 在 Spring 集成测试中过早触发
- python - AttributeError:当我保存在图像中时,“NoneType”对象没有属性“get”
- windows - 如何将窗口过程关联到我现有的对话窗口
- apostrophe-cms - 使用 (JoinByOne , JoinByArray) 自动加入
- c - 在程序中得到错误的输出
- android - FirebaseMessagingService 类中不存在handleIntent 方法
- swift - 当用户正在寻找视频时,AVPlayer 应该暂停
- amazon-web-services - Sagemaker 和 EC2 哪个成本更低?
- javascript - Webpack Loader:可选依赖项的默认值
- edi - EDI 和 FHIR 有什么区别?