zoukankan      html  css  js  c++  java
  • leetcode刷题笔记一百七十五题 && 一百七十六题 && 一百七十七题

    leetcode刷题笔记一百七十五题 && 一百七十六题 && 一百七十七题

    源地址:

    175. 组合两个表

    176. 第二高的薪水

    177. 第N高的薪水

    175问题描述:

    表1: Person

    +-------------+---------+
    | 列名 | 类型 |
    +-------------+---------+
    | PersonId | int |
    | FirstName | varchar |
    | LastName | varchar |
    +-------------+---------+
    PersonId 是上表主键
    表2: Address

    +-------------+---------+
    | 列名 | 类型 |
    +-------------+---------+
    | AddressId | int |
    | PersonId | int |
    | City | varchar |
    | State | varchar |
    +-------------+---------+
    AddressId 是上表主键

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

    FirstName, LastName, City, State

    # Write your MySQL query statement below
    SELECT Person.FirstName, Person.LastName, Address.City, Address.State From Person Left Join Address On Person.PersonId = Address.PersonId;
    

    176问题描述:

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

    +----+--------+
    | Id | Salary |
    +----+--------+
    | 1 | 100 |
    | 2 | 200 |
    | 3 | 300 |
    +----+--------+
    例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

    +---------------------+
    | SecondHighestSalary |
    +---------------------+
    | 200 |
    +---------------------+

    # Write your MySQL query statement below
    SELECT IFNULL(
        (SELECT DISTINCT Employee.salary FROM Employee ORDER BY salary DESC LIMIT 1 OFFSET 1), NULL
    ) AS  SecondHighestSalary;
    
    #备注:
    #IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
    #IFNULL() 函数语法格式为:
    #IFNULL(expression, alt_value)
    

    177问题描述:

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

    +----+--------+
    | Id | Salary |
    +----+--------+
    | 1 | 100 |
    | 2 | 200 |
    | 3 | 300 |
    +----+--------+
    例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。

    +------------------------+
    | getNthHighestSalary(2) |
    +------------------------+
    | 200 |
    +------------------------+

    CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
    BEGIN
      SET n = N - 1;
      RETURN (
        SELECT IFNULL(
        	(SELECT DISTINCT Employee.Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET n), NULL 
        )
      );
    END
    
  • 相关阅读:
    DiskFileUpload上传与Spring的CommonsMultipartResolver上传对比
    ajax请求jesery接口无法获取参数的问题解决方案
    java乱码问题总结
    indiGolog的安装
    hadoop启动步骤
    ubuntu修改默认jdk
    ubuntu 安装 ssh
    rabbitmq五种模式详解(含实现代码)
    终于可以像使用 Docker 一样丝滑地使用 Containerd 了
    Docker安装Nacos动态服务发现、配置和服务管理平台
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13644416.html
Copyright © 2011-2022 走看看