美文网首页
每日Leetcode—SQL(1)

每日Leetcode—SQL(1)

作者: Chuck_Wu | 来源:发表于2019-04-13 18:31 被阅读0次

175.组合两个表

表1: Person 表2: Address

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State

方法:

按照题目要求,使用left join,将左表的所有行包含进去:

select p.FirstName, p.LastName, a.City, a.State
from Person p left join Address a
on p.PersonId =a.PersonId 

176.第二高的薪水

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


表 Employee

例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

方法一:

该方法利用max函数对salary中最大的数进行过滤后,再次使用max函数选择最大的数。

select max(Salary) as SecondHighestSalary
from Employee
where Salary<(select max(Salary) from Employee)

方法二:

1、题目要求不存在就返回null,该方法使用ifnull函数;
2、利用dictinct对重复数据去重;
3、limit[offset,n]函数进行偏移选择。

select ifnull(
(select distinct Salary
from Employee 
order by Salary desc limit 1,1), null)
as SecondHighestSalary

相关文章

  • 每日Leetcode—SQL(1)

    175.组合两个表 编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 ...

  • 每日Leetcode—SQL(2)

    177.第N高的薪水 方法: 分析:此题可以参照(176.第二高的薪水)的思路来解题,176中使用了limit 1...

  • 每日Leetcode—SQL(3)

    180.连续出现的数字 方法一: 分析:该方法首先使用left join将表连接起来,再使用where查找满足条件...

  • 每日Leetcode—SQL(4)

    182. 查找重复的电子邮箱 方法一: 分析:该方法使用聚合函数,利用having查找Email大于1的值。 方法...

  • 每日Leetcode—SQL(6)

    196.删除重复的电子邮箱 方法一: 197.上升的温度 给定一个 Weather 表,编写一个 SQL 查询,来...

  • 每日Leetcode—SQL(5)

    184. 部门工资最高的员工 方法一: 方法二: 分析:该方法的执行时间比方法一有所提升 185.部门工资前三高的...

  • 每日Leetcode—SQL(7)

    620. 有趣的电影 作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (...

  • LeetCode-SQL-eight

    Leetcode-sql-eight 本文中总结了LeetCode中关于SQL的游戏玩家分析的4个题目 玩家首次登...

  • LeetCode-SQL-大的国家

    LeetCode-SQL-595-大的国家 大家好,我是Peter~ 本文讲解的是LeetCode-SQL的第59...

  • LeetCode-SQL-nine

    Leetcode-sql-nine 本文中主要是介绍LeetCode中关于SQL的练习题,从易到难,循序渐进。文中...

网友评论

      本文标题:每日Leetcode—SQL(1)

      本文链接:https://www.haomeiwen.com/subject/hvrrwqtx.html