619 只出现一次的最大数字
题目链接:619.只出现一次的最大数字
分析
题目要求找出最大的单一数字,如果不存在单一数字,则返回null。
根据上述要求发现,这道题其实是需要解决三个问题,一是找出单一数字,二是最大的,三是如果不存在,需要返回null。
首先解决第一个问题,找出单一数字,这个很简单,用group by+having即可解决。
select num from MyNumbers group by num having count(num)=1
其次如何寻找最大的数,一是可以使用order by对num进行降序排序,再用limit限制为第一个,则可找出;另一个则是使用max()函数直接取出最大的数。
再看第三个问题,如果不存在单一数字,则返回null,这里可确定需要使用max()函数,因为对于空表格,max()才可显示为null,而limit会直接输出空表格。
解答
所以完整的代码为:
select max(num) num from (select num from MyNumbers group by num having count(num)=1) t;
620 有趣的电影
题目链接:620.有趣的电影
分析
题目要求找出所有影片描述非boring的并且id为奇数的影片,返回结果按rating降序排列。
首先,找出非boring的,则用where搜寻语句搜寻
其次,寻找id为奇数的影片,用mod函数,mod(id,2)=1
mod(m,n):表示m除以n的余数。
mod(id,2)=1即id除以2的余数等于1
最后,按rating降序排列,使用order by语句进行排序,选择降序desc
解答:
select * from cinema where description != 'boring' and mod(id,2)=1 order by rating desc;
最后,我写了一篇MySQL教程,里面详细的介绍了MySQL的基本增删查改语句、嵌套连接搜索语句等内容,欢迎阅读!
MySQL数据库万字保姆级教程(有这一篇就够了,建议收藏)