LeetCode_database刷题记录(620. 有趣的电影)

某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 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

建表sql语句:

Create table If Not Exists cinema (id int, movie varchar(255), description varchar(255), rating float(2, 1))
Truncate table cinema
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')

解题sql:

select * from cinema where description <>'boring' and mod(id,2)=1 order by rating desc

思路解析

首先根据题目分析我们要做三件事,1找出不等于boring的电影,2电影的序号id为奇数,3按照rating排序.1,3很简单 <>boring 排除了无聊的电影,order by rating 对评分等级进行降序,分数高的排在上面解决,然后是2,可能很多小伙伴有思路但不知道具体怎么搞,或者不知道mod()函数,mod()函数其实就是一个取余函数
eg:mod(num1,num2)=0 num1 代表除数,num2代表被除数 0代表结果的余数,如果num1 除以num2 取的余数等于0 说明正好除尽,没有余数,如果等于1则说明有余数,这个题目我们判断奇偶其实就是判断序号除以2是否能除尽,所以用mod(id,2)=1来筛选为奇数的序号,结束.

你可能感兴趣的:(LeetCode_database刷题记录(620. 有趣的电影))