石家庄网络推广建站,海外seo推广公司,榆林微网站建设,企业年金离职的时候怎么办SQL 练习 176. 第二高的薪水
查询并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水#xff0c;查询应该返回 null(Pandas 则返回 None) 。
# Write your MySQL query statement below
SELECT MAX(salary) AS SecondHighestSalary
FROM Employee
WHERE salary 查询应该返回 null(Pandas 则返回 None) 。
# Write your MySQL query statement below
SELECT MAX(salary) AS SecondHighestSalary
FROM Employee
WHERE salary (SELECT MAX(salary)FROM Employee
)177. 第N高的薪水
查询 Employee 表中第 n 高的工资。如果没有第 n 个最高工资查询结果应该为 null 。
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGINDECLARE M INT;SET M N - 1;RETURN (SELECT IFNULL((SELECT DISTINCT SalaryFROM EmployeeORDER BY Salary DESCLIMIT 1 OFFSET M),NULL));
END178. 分数排名
查询并对分数进行排序。排名按以下规则计算:
分数应按从高到低排列。 如果两个分数相等那么两个分数的排名应该相同。 在排名相同的分数后排名数应该是下一个连续的整数。换句话说排名之间不应该有空缺的数字。 按 score 降序返回结果表。
SELECTscore,(SELECT COUNT(DISTINCT score) FROM Scores s2 WHERE s2.score s1.score) AS rank# 设置条件只选择分数大于或等于外部查询的当前分数的行即具有相同或更高分数的行。
FROMScores s1
ORDER BYscore DESC;180. 连续出现的数字
找出所有至少连续出现三次的数字。
返回的结果表中的数据可以按 任意顺序 排列。
SELECT DISTINCTl1.Num AS ConsecutiveNums
FROMLogs l1,Logs l2,Logs l3
WHEREl1.Id l2.Id - 1AND l2.Id l3.Id - 1AND l1.Num l2.NumAND l2.Num l3.Num
;181. 超过经理收入的员工
id 是该表的主键具有唯一值的列。 该表的每一行都表示雇员的ID、姓名、工资和经理的ID。
编写解决方案找出收入比经理高的员工。
以 任意顺序 返回结果表。
# Write your MySQL query statement below
SELECTe.name AS Employee
FROMEmployee e
JOINEmployee m
ONe.managerId m.id
ANDe.salary m.salary;182. 查找重复的电子邮箱
id 是该表的主键具有唯一值的列。 此表的每一行都包含一封电子邮件。电子邮件不包含大写字母。
编写解决方案来报告所有重复的电子邮件。 请注意可以保证电子邮件字段不为 NULL。
# Write your MySQL query statement below
SELECT email AS Email
FROM Person
GROUP BY email
HAVINGCOUNT(email) 1;183. 从不订购的客户
Customers 表
----------------------
| Column Name | Type |
----------------------
| id | int |
| name | varchar |
----------------------
在 SQL 中id 是该表的主键。
该表的每一行都表示客户的 ID 和名称。
Orders 表-------------------
| Column Name | Type |
-------------------
| id | int |
| customerId | int |
-------------------
在 SQL 中id 是该表的主键。
customerId 是 Customers 表中 ID 的外键( Pandas 中的连接键)。
该表的每一行都表示订单的 ID 和订购该订单的客户的 ID。找出所有从不点任何东西的顾客。
SELECTc.name AS Customers
FROMCustomers c
LEFT JOINOrders o
ONc.id o.customerId
WHEREo.id IS NULL;184. 部门工资最高的员工
表 Employee
-----------------------
| 列名 | 类型 |
-----------------------
| id | int |
| name | varchar |
| salary | int |
| departmentId | int |
-----------------------
在 SQL 中id是此表的主键。
departmentId 是 Department 表中 id 的外键在 Pandas 中称为 join key。
此表的每一行都表示员工的 id、姓名和工资。它还包含他们所在部门的 id。表 Department
----------------------
| 列名 | 类型 |
----------------------
| id | int |
| name | varchar |
----------------------
在 SQL 中id 是此表的主键列。
此表的每一行都表示一个部门的 id 及其名称。查找出每个部门中薪资最高的员工。
SELECT d.name AS Department, e.name AS Employee, e.salary AS Salary
FROM Employee e
JOIN Department d ON e.departmentId d.id
WHERE (e.departmentId, e.salary) IN (SELECT departmentId, MAX(salary)FROM EmployeeGROUP BY departmentId
)