文章目录

  • 1.换座位(交换相邻的id)
    • 基本信息
    • 要求
    • 答案[case when]
  • 2.分数排名(分组,排序)
    • 基本信息
    • 要求
    • 答案
  • 3.连续出现的数字(连接)
    • 信息
    • 要求
    • 答案
  • 4.第N高的薪水(函数)
    • 信息
    • 要求
    • 答案
  • 5.各个部门工资最高的员工(分组,连接)
    • 信息
    • 要求
    • 答案
  • 6.统计各专业人数
  • 7.查询回答率最高的问题
  • 8.至少有5名直接下属的经理

1.换座位(交换相邻的id)

基本信息

小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。

其中纵列的 id 是连续递增的

小美想改变相邻俩学生的座位。

你能不能帮她写一个 SQL query 来输出小美想要的结果呢?

示例:

id student
1 Abbot
2 Doris
3 Emerson
4 Green
5 Jeames

要求

假如数据输入的是上表,则输出结果如下:

id student
1 Doris
2 Abbot
3 Green
4 Emerson
5 Jeames
  • 注意:
    如果学生人数是奇数,则不需要改变最后一个同学的座位。

答案[case when]

select(casewhen mod(id,2) = 1 and id != (select count(*) from seat) then id+1when mod(id,2)=0 then id-1else id end) as id , student
from seat
order by id asc

2.分数排名(分组,排序)

基本信息

编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。

Id Score
1 3.50
2 3.65
3 4.00
4 3.85
5 4.00
6 3.65

要求

例如,根据上述给定的 Scores 表,你的查询应该返回(按分数从高到低排列):

Score Rank
4.00 1
4.00 1
3.85 2
3.65 3
3.65 3
3.50 4

答案

select s.Score, count(distinct t.Score) Rank
from Scores s join Scores t on s.Score <= t.Score
group by s.Id order by s.Score desc;

3.连续出现的数字(连接)

信息

编写一个 SQL 查询,查找所有至少连续出现三次的数字。

Id Num
1 1
2 1
3 1
4 2
5 1
6 2
7 2

要求

例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。

ConsecutiveNums
1

答案

这道题给了我们一个Logs表,让我们找Num列中连续出现相同数字三次的数字,那么由于需要找三次相同数字,所以我们需要建立三个表的实例,我们可以用l1分别和l2, l3内交,l1和l2的Id下一个位置比,l1和l3的下两个位置比,然后将Num都相同的数字返回即可:

解法一:

select distinct l1.Num  as ConsecutiveNums
from Logs l1 join Logs l2 on l1.Id = l2.Id - 1 join Logs l3 on l1.Id = l3.Id - 2
where l1.Num = l2.Num and l2.Num = l3.Num;

我们在本地已经新建了表Logs.

4.第N高的薪水(函数)

信息

编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。

Id Salary
1 100
2 200
3 300

要求

例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。

getNthHighestSalary(2)
200

答案

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGINSET N = N - 1;RETURN (select distinct Salary from Employee group by Salaryorder by Salary desc limit 1 offset N);
END

5.各个部门工资最高的员工(分组,连接)

信息

Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。

Id Name Salary DepartmentId
1 Joe 70000 1
2 Henry 80000 2
3 Sam 60000 2
4 Max 90000 1

Department 表包含公司所有部门的信息。

Id Name
1 IT
2 Sales

要求

编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据上述给定的表格,Max 在 IT 部门有最高工资,Henry 在 Sales 部门有最高工资。

Department Employee Salary
IT Max 90000
Sales Henry 80000

答案

select Department.Name as Department, Employee.Name as Employee,Salary
from Employee join Department on Employee.DepartmentId = Department.Id
where (Employee.salary, Employee.departmentId) in (select  max(salary),departmentIdfrom employeegroup by departmentId );

6.统计各专业人数

7.查询回答率最高的问题

8.至少有5名直接下属的经理

SELECTName
FROMEmployee AS t1 JOIN(SELECTManagerIdFROMEmployeeGROUP BY ManagerIdHAVING COUNT(ManagerId) >= 5) AS t2ON t1.Id = t2.ManagerId);  

数据库 CURD测试题【中等】相关推荐

  1. 数据库 CURD测试题【简单】

    文章目录 1.组合两个表 基本信息 要求 答案 2.第二高的薪水 基本信息 要求 答案 3.查找重复的电子邮箱 基本信息 要求 答案 4.超过经理收入的员工 基本信息 要求 答案: 5.超过5名学生的 ...

  2. oracle数据库基础测试,ORACLE数据库基础测试题oracle数据库复习题.docx

    <ORACLE数据库基础测试题oracle数据库复习题.docx>由会员分享,可在线阅读,更多相关<ORACLE数据库基础测试题oracle数据库复习题.docx(18页珍藏版)&g ...

  3. MyBatis-Plus实现数据库curd操作

    文章目录 MyBatis-Plus 2.1.mp入门 MP主键策略 2.2.curd 2.3.自动填充 3.乐观锁 3.1.场景 MP实现乐观锁. 4.MP查询 4.1.多个ID批量查询 4.2.简单 ...

  4. php写接口curd,8.2 php接口类 实现数据库CURD小案例

    php接口类 实现数据库CURD小案例 因为PHP只支持单继承,也就是说每个类只能继承一个父类.当声明的心累继承抽象类实现模板以后,它就不能再有其他的父类啦~ 为了解决这个问题,php引入了接口(注意 ...

  5. 【数据库】测试题二 关系代数

    测试题二 关系代数 问题 1 得 2 分,满分 2 分     对关系R进行投影运算后,得到关系S,则(     ). 所选答案: C. 关系R的元组数大于或等于关系S的元组数 答案: A. 关系R的 ...

  6. 二十九、Node.js连接Mysql和MongoDB数据库CURD操作

    @Author:Runsen @Date:2020/6/10 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  7. 如何使用 Mybatis 实现数据库 CURD 操作?

    作者 | 阿文,责编 | 郭芮 头图 | CSDN 下载自东方IC 出品 | CSDN(ID:CSDNnews) MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.M ...

  8. 【数据库学习笔记】03 MySQL数据库CURD整理大全

    2018.5.10 修 String 日期存入数据库的Date日期 1.MySQL语句方式 to_date(#{birthday},'YYYY/MM/DD') 2018.4.12 一:数据表操作 创建 ...

  9. 01-初步认识数据库管理系统测试题

    关于数据库系统和数据库管理系统,下列说法正确的是__________. 从系统角度看数据库管理系统,其功能包括__________. 下列哪些功能不是数据库管理系统的功能__________. 关于数 ...

最新文章

  1. Rsync和Sersync(企业实时同步方案)
  2. NetBeans 时事通讯(刊号 # 125 - Nov 17, 2010)
  3. linux-basic(7)linux文件与目录管理
  4. host ntrip 千寻rtk_最新测量干货:南方银河1和银河1Plus RTK设备连接千寻cors账号的设置方法...
  5. python导入xlrd库_python中xlrd库如何实现文件读取?
  6. 将oracle优化器改为CBO,【DB.Oracle】Oracle 优化器 (RBO, CBO)
  7. 盘口的买一是卖股票还是买股票?
  8. JavaMail之发送邮件+接收邮件
  9. 2007年版EI核心版收录的中国期刊
  10. elasticsearch实践之代码结构设计
  11. matlab carcasonne,【My songs】原创英文歌词翻译
  12. 光计算机pdf,神威bull;太湖之光计算机系统.PDF
  13. XDOJ 233/237-字符串复制
  14. BDD ROBDD
  15. 洛谷 P2530 [SHOI2001]化工厂装箱员
  16. mysql连接数据了的dep_MySQL数据库基础
  17. 华为nova7se能云闪付吗_vivoS7和华为nova7se哪个好?自拍手机该如何抉择!
  18. Springboot 项目整合自定义日志文件
  19. [c#]喜马拉雅、蜻蜓、荔枝FM音频批量下载器V1.3 by Levme开发手记
  20. ssm智能社区服务的设计与实现毕业设计-附源码221512

热门文章

  1. java 常见bug_java常见bug
  2. python调用 matlab库_python调用matlab的搜索结果-阿里云开发者社区
  3. 2019编译ffepeg vs_如何在windows10下使用vs2017编译最新版本的FFmpeg和ffplay
  4. python界面编程和网口通信_Python—网络通信编程之tcp通信编程
  5. docker-compose观察实时日志_大数据项目实战之在线教育(03实时需求) - 十一vs十一...
  6. 进程调试--进程启动VS自动附加
  7. Restful对于URL的简化
  8. Regsvr32 dll OCX时报错,LoadLibrary(Dllname) 内存访问失败。
  9. cop2000计算机组成原理,COP2000计算机组成原理实验系统
  10. php bloginfo stylesheeturl,WordPress主题制作–bloginfo函数使用教程