某城市開了一家新的電影院,吸引了很多人過來看電影。該電影院特別注意用戶體驗,專門有個 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 |
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')
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來篩選為奇數的序號,結束.
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态