专栏首页八点半技术站「数据库」sql刷题(No.3)

「数据库」sql刷题(No.3)

题目一:

编写一个 SQL 查询,获取 person 表中第二高的薪水。(薪水字段:salary)。

注意:SQL查询应该返回 70 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

例如下图:

解答方法:

这里给大家提供 3 种解答方式 ,也有其他写法~~~(以下解答方式,已经过测试

第一种:

使用 子查询 和 LIMIT 子句 的方式

将不同的薪资按降序排序,然后使用 LIMIT 子句获得第二高的薪资

SELECT DISTINCT
    salary AS seconed_salary
FROM
    person
ORDER BY salary DESC
LIMIT 1 OFFSET 1

如果没有这样的第二最高工资,这个解决方案将被判断为 “错误答案”,因为本表可能只有一项记录。为了克服这个问题,我们可以将其作为临时表。

SELECT
  (SELECT DISTINCT
      salary
   FROM
      person
   ORDER BY salary DESC
  LIMIT 1 OFFSET 1) AS seconed_salary

第二种:

使用使用 IFNULL 和 LIMIT 子句 方式

解决 “ NULL ” 问题的另一种方法是使用 “ IFNULL ” 函数。

SELECT
   IFNULL(
     (SELECT DISTINCT salary
        FROM person
        ORDER BY salary DESC
        LIMIT 1 OFFSET 1),
    NULL) AS seconed_salary

第三种:

使用 oracle 、mysql 通用方式

select max(salary) seconed_salary
from person
where salary < (select max(salary) from person)

题目二:

这是一张 world 表,如果一个家族占地面积超过4000平方公里,或者人口超过200,那么这个家族就是大家族(夸张修辞...Haaahaa)。

编写一条 sql,找出满足这些条件的家族,告诉我他的名字、人口 与 占地。

例如下图:

解答方法:

这里给大家提供 1 种解答方式 ,也有其他写法~~~(以下解答方式,已经过测试

第一种:

使用 WHERE 子句和 UNION 的方式

SELECT
    name, population, area
FROM
    world
WHERE
    area > 4000

UNION

SELECT
    name, population, area
FROM
    world
WHERE
    population > 200

结尾总结:

这 2 道题类型评定:简单类型 。第一道题,解答方式多,第三种写法采用 oracle与mysql 通用的写法。第二道题,那种写法会比使用 where子句和 or要运行快(但是他们写法没什么差别)。

不管大家有没有其他方式,没必要会灰心,坚持打卡下去,做不一样的自己。

本文分享自微信公众号 - 八点半技术站(gtcarry),作者:八点半技术站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「数据库」sql刷题(No.13)

    技术的交流、不仅仅限制于阅读,因此我特地创建了一个「红包激励机制」的 sql 刷题群,红包激励机制的内容,我将以图片形式放在文章底部。

    八点半的Bruce、D
  • 一起来聊聊,那些你不知道的 MySQL 函数

    mysql 也是从5.0 开始支持的函数,调用函数可以减少数据在数据库和应用服务器上的传输,对于提高数据处理的效率。

    八点半的Bruce、D
  • 「数据库」sql刷题(No.4)

    有一个courses 表 ,有:student (学生) 和 class (课程)。

    八点半的Bruce、D
  • 蓝桥杯 试题 基础练习 矩形面积交

    思路:首先我们要考虑是否相交,如果存在不相交,那么因该输出0,否则的话就是找到相交矩阵的长跟宽,就是两个矩阵的四个横坐标跟纵坐标中间那两个相减的绝对值,但如果我...

    用户7727433
  • 我们活在真实世界还是模拟人生:重要吗?不重要吗?

    大数据文摘
  • 【网络安全】IDS vs IPS vs UTM - 有什么区别?

    在我们上一次网络广播中,我们了解了这些疯狂的首字母缩略词IDS和IPS的遗留问题以及它们与UTM软件模块的相似之处。每个人都喜欢引物和简单的描述性定义,所以让我...

    首席架构师智库
  • 区块链开发公司与供应链 怎样实现互助共赢?

    都说区块链开发是当今商业发展趋向,其实并非空穴来风。我们知道一切商业行为都是商品服务的过程!而整合这个过程的多是借“供应链”来完成,但错综复杂的市场变数让供应链...

    区块链开发先驱者
  • Android项目实战(二):安卓应用程序退出的三种方法

    听着music睡
  • SAP CRM中间件下载时数据库表CRMATAB为空的处理方法

    Run report SMOF_FILL_CRMATAB in CRM system:

    Jerry Wang
  • 干货 | 深度学习之DNN的多种正则化方式

    关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 前言 和普通的机器学习算法一样,DN...

    昱良

扫码关注云+社区

领取腾讯云代金券