
Leetcode数据库题目及解题笔记
主要是SQL类题目解法。
(每题都有多种解法,主要记录最优解法)
数星星的小贝壳
这个作者很懒,什么都没留下…
展开
-
leetcodeSQL1179. 重新格式化部门表(难度:简单)--行列转换
部门表 Department:+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || revenue | int || month | varchar |+---------------+---------+(id, month) 是表的联合主键。这个表格有关于每个部门每月收入的信息。月份...原创 2020-05-26 21:30:47 · 424 阅读 · 0 评论 -
leetcode-SQL 627. 交换工资(难度:简单)--update 的使用
给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。例如:| id | name | sex | salary ||----|------|-----|--------|| 1 | A | m | 2500 || 2 | B | ...原创 2020-05-25 22:35:09 · 190 阅读 · 0 评论 -
leetcode-SQL 626. 换座位(难度:中等)--奇偶数和case when的使用
小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的 id 是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?示例:+---------+---------+| id | student |+---------+---------+| 1 | Abbot || 2 | Doris || 3 | Emer...原创 2020-05-24 15:09:41 · 418 阅读 · 1 评论 -
leetcode-SQL 620. 有趣的电影(难度:简单)--奇数偶数的区别
某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非boring(不无聊)的并且 id 为奇数的影片,结果请按等级 rating 排列。例如,下表 cinema:+---------+-----------+--------------+-----------+| id | movie | descr...原创 2020-05-22 23:13:16 · 507 阅读 · 0 评论 -
leetcode-SQL 601. 体育馆的人流量(难度:困难)--自表连接
X 市建了一个新的体育馆,每日人流量信息被记录在这三列信息中:序号 (id)、日期 (visit_date)、 人流量 (people)。请编写一个查询语句,找出人流量的高峰期。高峰期时,至少连续三行记录中的人流量不少于100。例如,表 stadium:+------+------------+-----------+| id | visit_date | people |+------+------------+-----------+| 1 | 2017-01-01 |...原创 2020-05-22 01:17:49 · 471 阅读 · 0 评论 -
leetcode-SQL 595. 大的国家(难度:简单)--OR的使用
这里有张 World 表+-----------------+------------+------------+--------------+---------------+| name | continent | area | population | gdp |+-----------------+------------+------------+--------------+---------------+| Afghanist...原创 2020-05-19 22:04:21 · 187 阅读 · 0 评论 -
leetcode-SQL 185. 部门工资前三高的所有员工(难度:困难)--排序函数使用(dense_rank())
(这题可联系184题来思考)Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId 。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 85000 | 1 || 2 | Hen...原创 2020-05-18 23:13:08 · 369 阅读 · 0 评论 -
leetcode-SQL 197. 上升的温度(难度:简单)--表的自连接,datediff()的使用
给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。+---------+------------------+------------------+| Id(INT) | RecordDate(DATE) | Temperature(INT) |+---------+------------------+------------------+| 1 | 2015-01-01 | 10 ...原创 2020-05-18 23:04:48 · 259 阅读 · 0 评论 -
leetcode-SQL 184. 部门工资最高的员工(难度:中等)-- 排序函数的使用(rank()/dense_rank())
Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 70000 | 1 || 2 | Henry | 80000 | 2 || 3...原创 2020-05-16 00:08:45 · 313 阅读 · 0 评论 -
leetcode-SQL 183.从不订购的客户(难度:简单)--NOT IN的使用
某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。Customers 表:+----+-------+| Id | Name |+----+-------+| 1 | Joe || 2 | Henry || 3 | Sam || 4 | Max |+----+-------+Orders 表:+----+------------+| Id | CustomerId |+----+----...原创 2020-05-14 01:29:07 · 158 阅读 · 0 评论 -
leetcode 196. 删除重复的电子邮箱 / Delete Duplicate Emails--表(行)的删除
编写一个 SQL 查询,来删除Person表中所有重复的电子邮箱,重复的邮箱里只保留Id最小的那个。+----+------------------+| Id | Email |+----+------------------+| 1 | john@example.com || 2 | bob@example.com || 3 | john@example.com |+----+------------------+Id 是这个表的主键。例如,在运...原创 2020-05-12 22:50:49 · 369 阅读 · 0 评论 -
leetcode 182.查找重复的电子邮箱(难度:简单)--having用法
编写一个 SQL 查询,查找Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email |+---------+| a@b.com |+---------+说明:所有电子邮箱都是小写字母...原创 2020-05-12 01:54:11 · 437 阅读 · 0 评论 -
leetcode 180. 连续出现的数字(难度:中等)-- 多表连接
编写一个 SQL 查询,查找所有至少连续出现三次的数字。+----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+-----+例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。+-----------------+| ConsecutiveNums |+------...原创 2020-05-09 19:30:48 · 202 阅读 · 0 评论 -
leetcode 178.分数排名(难度:中等)--dense_rank使用
编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。+----+-------+| Id | Score |+----+-------+| 1 | 3.50 || 2 | 3.65 || 3 | 4.00 || 4 | 3.85 || 5...原创 2020-05-03 23:54:00 · 250 阅读 · 0 评论 -
leetcode 177. Second Highest Salary / 第N高的薪水(难度:中等)--limit的用法
编写一个 SQL 查询,获取 Employee 表中第n高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,n = 2时,应返回第二高的薪水200。如果不存在...原创 2020-04-24 11:51:54 · 170 阅读 · 0 评论 -
leetcode-SQL 176. Second Highest Salary / 第二高的薪水 (难度:简单)
编写一个 SQL 查询,获取 Employee表中第二高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,SQL查询应该返回200 作为第二高的薪水。如果不存在...原创 2020-04-22 18:09:32 · 186 阅读 · 0 评论 -
leetcode-SQL 262. Trips and Users / 行程和用户(难度:困难)--多表连接和筛选
Trips表中存所有出租车的行程信息。每段行程有唯一键 Id,Client_Id 和Driver_Id 是Users表中 Users_Id 的外键。Status 是枚举类型,枚举成员为 (‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’)。+----+-----------+-----------+---------...原创 2020-04-22 16:22:46 · 440 阅读 · 0 评论