题目描述
(通过次数123,750 | 提交次数160,379,通过率77.16%)
某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。 作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非boring(不无聊)的并且 id 为奇数的影片,结果请按等级 rating 倒序排列。 例如,下表 cinema: +---------+-----------+--------------+-----------+ | id | movie | description | rating | +---------+-----------+--------------+-----------+ | 1 | War | great 3D | 8.9 | | 2 | Science | fiction | 8.5 | | 3 | irish | boring | 6.2 | | 4 | Ice song | Fantacy | 8.6 | | 5 | House card| Interesting| 9.1 | +---------+-----------+--------------+-----------+ 对于上面的例子,则正确的输出是为: +---------+-----------+--------------+-----------+ | id | movie | description | rating | +---------+-----------+--------------+-----------+ | 5 | House card| Interesting| 9.1 | | 1 | War | great 3D | 8.9 | +---------+-----------+--------------+-----------+ 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/not-boring-movies
//测试数据 Create table If Not Exists cinema (id int, movie varchar(255), description varchar(255), rating float(2, 1)); insert into cinema (id, movie, description, rating) values ('1', 'War', 'great 3D', '8.9'); insert into cinema (id, movie, description, rating) values ('2', 'Science', 'fiction', '8.5'); insert into cinema (id, movie, description, rating) values ('3', 'irish', 'boring', '6.2'); insert into cinema (id, movie, description, rating) values ('4', 'Ice song', 'Fantacy', '8.6'); insert into cinema (id, movie, description, rating) values ('5', 'House card', 'Interesting', '9.1');
解题思路
cinema表中保存了所有的电影。
题目要求:筛选出同时满足如下两个条件的电影:
第一:影片描述为非boring;
这个条件比较简单,使用<>操作符即可实现。
第二:id为奇数;
奇数的特点是对2取余,余数为1。所以,这里需要使用取余函数MOD。
最后,再以rating倒序排序。
参考SQL
未特别说明的情况下,参考SQL为基于MySQL8.0实现。
select * from cinema a where description <> 'boring' and mod(id,2) = 1 order by rating desc;
本站所有内容均为原创,本站保留所有权利。仅允许非商业用途的转载,但必须注明来源网站、作者、来源链接!否则,由此造成的一切后果,由转载方承担!
干货分享、技术提升、面试笔试、学习交流,欢迎关注公众号:xuesql。QQ学习交流群:209942678。