码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据库算法175. 组合两个表 176. 第二高的薪水 177. 第N高的薪水


    前言

    最近发现leetcode还有mysql的题目,于是尝试做了几道

    175. 组合两个表

    176.](https://img-blog.csdnimg.cn/e066ec5386f942aba6677a8cdcfae964.png)
    编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空 null 。

    以 任意顺序 返回结果表。

    查询结果格式如下所示。
    在这里插入图片描述
    首先组合表,可以想到使用连接,于是使用了inner join,但运行时发现还有一种null的情况,于是改用左外连接,这样就会填充null

    select p.firstName,p.lastName,a.city,a.state 
    from Person p right join Address a 
    on p.personId=a.personId;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    176. 第二高的薪水

    . 在这里插入图片描述
    编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。

    查询结果如下例所示。
    在这里插入图片描述
    在这里插入图片描述
    这里思路开始是取排序的第二个

    select ifnull((select salary from Employee order by Employee.salary desc limit 1,1),null)  as SecondHighestSalary;
    
    • 1

    但发现有重复,那么就去重

    select ifnull((select distinct salary from Employee order by Employee.salary desc limit 1,1),null)  as SecondHighestSalary;
    
    • 1

    这样可以了
    于是也可以使用

    select max(Salary) SecondHighestSalary 
    from Employee
    where Salary < (select max(Salary) from Employee)
    
    • 1
    • 2
    • 3

    177. 第N高的薪水

    在这里插入图片描述
    编写一个SQL查询来报告 Employee 表中第 n 高的工资。如果没有第 n 个最高工资,查询应该报告为 null 。

    查询结果格式如下所示。
    在这里插入图片描述
    在这里插入图片描述
    思路和上个题一样

    select distinct salary from Employee order by Employee.salary desc limit n-1,1
    
    • 1

    但发现这个是function,那么n-1是不行的
    于是set n = n-1

    CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
    BEGIN
        SET N=N-1;
      RETURN (
          # Write your MySQL query statement below.
          select distinct salary from Employee order by Employee.salary desc limit n,1
      );
    END
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/combine-two-tables
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 相关阅读:
    微服务 - Nginx网关 · 进程机制 · 限流熔断 · 性能优化 · 动态负载 · 高可用
    100天精通Python(数据分析篇)——第53天:初始pandas模块
    el-select 远程分页搜索(可搜关键字)
    自学Python第二十五天- Pipenv 虚拟环境和包管理工具
    学生HTML个人网页作业作品下载 个人主页博客网页设计制作 大学生个人网站作业模板 dreamweaver简单个人网页制作
    【Linux】Ubuntu美化bash【教程】
    多线程系列(一) -线程技术入门知识讲解
    软件开发 23个设计模式收集
    IOC操作-bean管理:基于注解的方式来创建对象和(自动装配)属性注入以及完全注解开发方式
    基于 Vagrant 手动部署多个 Redis Server
  • 原文地址:https://blog.csdn.net/qq_39167720/article/details/125559111
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号