数据库 CURD测试题【中等】

文章目录

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

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

基本信息

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

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

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

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

示例:

idstudent
1Abbot
2Doris
3Emerson
4Green
5Jeames

要求

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

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

答案[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)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。

IdScore
13.50
23.65
34.00
43.85
54.00
63.65

要求

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

ScoreRank
4.001
4.001
3.852
3.653
3.653
3.504

答案

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 查询,查找所有至少连续出现三次的数字。

IdNum
11
21
31
42
51
62
72

要求

例如,给定上面的 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)。

IdSalary
1100
2200
3300

要求

例如上述 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。

IdNameSalaryDepartmentId
1Joe700001
2Henry800002
3Sam600002
4Max900001

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

IdName
1IT
2Sales

要求

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

DepartmentEmployeeSalary
ITMax90000
SalesHenry80000

答案

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);  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[STemWin教程入门篇]第一期:emWin介绍

特别说明&#xff1a;原创教程&#xff0c;未经许可禁止转载&#xff0c;教程采用回复可见的形式&#xff0c;谢谢大家的支持。 armfly-x2,x3,v2,v3,v5开发板裸机和带系统的emWin工程已经全部建立&#xff0c;链接如下&#xff1a; http://bbs.armfly.com/read.php?tid1830 SE…

python 栈【测试题】

文章目录1.删除最外层的括号信息要求答案2.棒球比赛信息示例答案3. 用栈实现队列要求说明:答案4.用队列模拟栈描述注意答案5.下一个更大的元素&#xff08;未解&#xff09;信息&#xff1a;示例&#xff1a;注意:答案&#xff1a;6.删除字符串中的所有相邻重复项信息示例&…

python从socket做个websocket的聊天室server

下面的是server端&#xff1a;把IP改成自己的局域网IP&#xff1a; #coding:utf8 import socket,select import SocketServer import hashlib,base64,time from pprint import pprint#author:lijim def f(key):skey"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"sha1hashli…

python进阶(第三章1) 字典

文章目录3.1 泛映射类型什么是可散列的数据类型&#xff08;键的要求&#xff09;字典的构造方法3.2 字典推导(dictcomp)3.3 常见的映射方法用setdefault处理找不到的键3.4 映射的弹性键查询3.4.1 defaultdict:处理找不到的键的一个选择注意&#xff1a;defaultdict与dict实例化…

python基础 list和tuple

文章目录一、list1、len()函数可以获得list元素的个数2、索引从0开始3、末尾追加 append(xx)4、也可以把元素插入到指定的位置&#xff0c;比如索引号为1的位置(insert)5、末尾删除pop() &#xff0c;并且返回该值6、要删除指定位置的元素&#xff0c;用pop(i)方法&#xff0c;…

HDU 2818 Building Block

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid2818 题意:给定N个blocks&#xff0c;分在N个堆里&#xff0c;然后又P个操作&#xff0c;每次将x所在的堆放在y所在的堆上&#xff0c;或者询问x的下面有几个blocks 做法&#xff1a;带权并查集 因为要查询x的下面有多少bl…

百度社会化分享组件使用问题

今天下午玩了玩百度的社会化分享sdk,我是在这下载的sdk http://developer.baidu.com/frontia/sdk 谁知道这个下载链接是没更新的,还是1.0版本的,是尼玛13年初的版本 捣鼓了半天各种bug 然后去百度官网重新找http://developer.baidu.com/wiki/index.php?titledocs/frontia/res…

python基础 dict和set

文章目录dictset4.用集合为列表去重5.集合的增 add,update6.集合的删 discard,remove,pop,clear7 集合运算7.1 子集(<或者issubset()方法)7.2并集(|或者union()方法)7.3 交集(&或者intersection())7.4 差集(-或者difference()方法)7.5 对称集(^或者symmetric_difference…

python进阶(第三章2)字典和集合

文章目录3.8 集合论nee中的元素在haystack中出现的次数&#xff0c;可以在任何可迭代对象上3.8.1集合字面量3.8.2 集合推导3.8.3 集合操作3.9 dict和set的背后3.9.1 一个关于效率的实验3.9.2 字典中的散列表1.散列值和相等性2.散列表算法获取值&#xff1a;添加新的元素更新现有…

Android下实现GPS定位服务

1.申请Google API Key&#xff0c;参考前面文章 2.实现GPS的功能需要使用模拟器进行经纬度的模拟设置&#xff0c;请参考前一篇文章进行设置 3.创建一个Build Target为Google APIs的项目 4.修改Androidmanifest文件&#xff1a; view plain<uses-library android:name"…

python 链表 【测试题】

文章目录注意&#xff1a;实例讲解1 .链表基本功能2. 根据值删除链表中的节点信息答案&#xff1a;3.反转一个单链表信息答案4.合并两个有序链表信息答案5.删除排序链表中的重复元素信息答案6.移除链表元素信息7.环形链表信息进阶思路答案注意&#xff1a; 这里的head是只存储…

WebService应用一例,带有安全验证

1、创建WEB项目&#xff0c;添加WEB服务WebService1.asmx&#xff0c;代码如下&#xff1a; 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Web;5 using System.Web.Services;6 7 namespace WebService8 {9 /// <summary> …

linux集成开发环境

Linux操作系统的种种集成开发环境随着Linux的逐渐兴起&#xff0c;已经有为数众多的程序在上面驰骋了&#xff0c;许多开发环境(Development Environment)也应运而生。好的开发环境一定是集成了编辑、编译和调试等多项功能并且易于使用。本文介绍了一些在Linux上流行的开发环境…

mysql技术内幕《读书笔记》

文章目录1. mysql 体系结构和存储引擎1.5 连接mysql1.5.11. mysql 体系结构和存储引擎 1.5 连接mysql 连接mysql操作是一个连接进程和mysql数据库实例进行通信。 本质是进程通信&#xff0c;常用的进程通信方式有管道&#xff0c;命名管道&#xff0c;命名字&#xff0c;TCP/…

DEDECMS全版本gotopage变量XSS ROOTKIT 0DAY

影响版本&#xff1a; DEDECMS全版本 漏洞描叙&#xff1a; DEDECMS后台登陆模板中的gotopage变量未效验传入数据&#xff0c;导致XSS漏洞。 \dede\templets\login.htm 65行左右 <input type"hidden" name"gotopage" value"<?php if(!empty($g…

Android开源库loopj的android-async-http的 JsonHttpResponseHandler 存在死循环GC_CONCURRENT

我现在用的是 AndroidAsyncHttp 1.4.4 版本&#xff0c;之前遇到一个很奇怪的问题&#xff0c; 当使用 JsonHttpResponseHandler 解析请求的页面出现服务器错误或其他情况返回的内容不是 JSON 字符串时不会调用自己复写实现的 onSuccess 或者 onFailure 方法&#xff0c;将会出…

python【进阶】4.文本和字节序列

文章目录1. 字符、码位和字节表述4.1字符问题2. bytes、bytearray 和 memoryview 等二进制序列的独特特性3. 全部 Unicode 和陈旧字符集的编解码器4.避免和处理编码错误5.处理文本文件的最佳实践6.默认编码的陷阱和标准 I/O 的问题7.规范化 Unicode 文本,进行安全的比较8.规范化…

C#序列化和反序列化

序列化和反序列化我们可能经常会听到&#xff0c;其实通俗一点的解释&#xff0c;序列化就是把一个对象保存到一个文件或数据库字段中去&#xff0c;反序列化就是在适当的时候把这个文件再转化成原来的对象使用。我想最主要的作用有&#xff1a; 1、在进程下次启动时读取上次保…

python【进阶】5.一等函数(注销)

在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程 序实体: 在运行时创建能赋值给变量或数据结构中的元素能作为参数传给函数能作为函数的返回结果 在 Python 中,所有函数都是一等对象。 5.1 把函数视作对象 >>> def d(n): ... …

进程状态转换(了解)

进程三个基本状态&#xff1a;就绪、阻塞、运行 这个比较简单&#xff0c;进程创建后进入就绪状态、然后若CPU空闲或能打断CPU正在执行的进程&#xff08;优先级低的&#xff09;&#xff0c;那么就绪状态转换成运行态&#xff0c;运行时&#xff0c;进程需要用到其他资源&…