leetcode SQL题目

文章目录

组合两个表

sql 复制代码
SELECT firstName,lastName,city,state FROM Person LEFT JOIN Address ON Person.PersonId=Address.PersonId

第二高的薪水

sql 复制代码
SELECT
IFNULL(
(SELECT DISTINCT salary FROM Employee Order by salary desc LIMIT 1,1),null
) AS SecondHighestSalary

第N高的薪水

sql 复制代码
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N:=N-1;
  RETURN (
      # Write your MySQL query statement below.
      SELECT IFNULL((SELECT DISTINCT salary FROM Employee ORDER BY salary DESC LIMIT N,1),NULL) 
  );
END

分数排名

sql 复制代码
SELECT score, (SELECT count(DISTINCT score)+1 FROM Scores S2 Where S2.score>Scores.score) AS 'rank' FROM Scores ORDER BY score DESC

连续出现的数字

sql 复制代码
SELECT DISTINCT l1.num AS 'ConsecutiveNums' FROM Logs l1,Logs l2,Logs l3 WHERE l1.id=l2.id-1 AND l2.id=l3.id-1 AND l1.num=l2.num AND l2.num=l3.num

超过经理收入的员工

sql 复制代码
SELECT e.name AS Employee FROM Employee e,Employee e2 WHERE e2.id=e.managerId AND e.salary > e2.salary

查找重复的电子邮件

sql 复制代码
SELECT DISTINCT p1.email AS Email FROM Person p1,Person p2 WHERE p1.email=p2.email AND p1.id !=p2.id

从不订购的客户

sql 复制代码
SELECT name AS Customers FROM Customers WHERE id NOT IN (SELECT DISTINCT customerId FROM Orders)

部门工资最高的员工

sql 复制代码
SELECT Department.name AS Department,e.name AS Employee,e.salary AS Salary FROM Department,Employee e WHERE Department.id=e.departmentId AND e.salary >= ALL(SELECT salary FROM Employee e2 WHERE e.departmentId = e2.departmentId)

部门工资前三高的所有员工

sql 复制代码
SELECT Department.name AS Department, e.name AS Employee,e.salary AS Salary FROM Employee e,Department WHERE e.departmentId=Department.id AND
(SELECT COUNT(Distinct e2.salary) FROM Employee e2 WHERE e2.departmentId=e.departmentId AND e2.salary>e.salary)<3 ORDER BY e.departmentId ASC

删除重复的电子邮箱

sql 复制代码
DELETE p2 FROM Person p1,Person p2 WHERE p1.email=p2.email AND p1.id<p2.id

上升的温度

sql 复制代码
SELECT w2.id AS Id FROM Weather w1,Weather w2 WHERE DATEDIFF(w2.recordDate,w1.recordDate)=1 AND w1.Temperature < w2.Temperature

DATEDIFF()函数用于计算两个日期的天数差

游戏玩法分析Ⅰ

sql 复制代码
SELECT player_id,MIN(event_date) AS first_login FROM Activity GROUP BY player_id

游戏玩法Ⅳ

sql 复制代码
SELECT ROUND(
(SELECT COUNT(DISTINCT b.player_id) FROM Activity b WHERE (b.player_id,b.event_date) IN
(
SELECT a.player_id,DATE(MIN(a.event_date)+INTERVAL 1 DAY) FROM Activity a GROUP BY a.player_id
))
/
(SELECT COUNT(DISTINCT player_id) FROM Activity),2
) AS fraction
相关推荐
李可以量化32 分钟前
Python之如何做出交易日历(上)
人工智能·算法·qmt·量化 qmt ptrade
会编程的土豆35 分钟前
【数据结构与算法】新二叉树
数据结构·算法·二叉树
jerryinwuhan41 分钟前
基于结构可控性的给水管网传感器布点选择算法
数据库·算法
南宫萧幕41 分钟前
车辆控制基础:从 EKF 状态估计到非线性 MPC 轨迹跟踪的闭环实现
算法·matlab·汽车·控制·pid
旺王雪饼 www42 分钟前
MySQL常用查询语句
数据库·sql
点PY42 分钟前
《高质量的实时直接体绘制算法》论文精读
算法
X journey44 分钟前
机器学习进阶(24):主成分分析PCA
人工智能·算法·机器学习
MediaTea1 小时前
AI 术语通俗词典:精确率(分类)
人工智能·算法·机器学习·分类·数据挖掘
Morwit1 小时前
【力扣hot100】 416. 分割等和子集
数据结构·c++·算法·leetcode·职场和发展
ECT-OS-JiuHuaShan1 小时前
朱梁整体论,万有代谢元,矛盾因果网,人间正道是沧桑
人工智能·科技·算法·机器学习·拓扑学