当前位置: 首页 > news >正文

202553-sql

目录

一、196. 删除重复的电子邮箱 - 力扣(LeetCode)

二、602. 好友申请 II :谁有最多的好友 - 力扣(LeetCode)

三、176. 第二高的薪水 - 力扣(LeetCode)


一、196. 删除重复的电子邮箱 - 力扣(LeetCode)

题意就是删除删除重复的邮箱

很容易可以想到 delete from person where id in (一坨)

绕了个弯子 让你写删除语句本质还是写查询语句

  1. 第一层查询使用窗口函数 分组加排序
    select *,
    row_number() over(partition by email order by id asc) as 'rank' 
    from Person

  2. 可以显然得出 临时表中rank >1 的都是重复的,嵌套一层查id出来
     select id from (select *,row_number() over(partition by email order by id asc) as 'rank' from Person) temp  where temp.rank = 1

  3. 执行删除语句
    delete from Person where id not in (select id from (select *,row_number() over(partition by email order by id asc) as 'rank' from Person) temp  where temp.rank = 1
    )

二、602. 好友申请 II :谁有最多的好友 - 力扣(LeetCode)

 

with t1 as(select requester_id as 'id' from RequestAcceptedunion allselect accepter_id  as 'id' from RequestAccepted
),
t2 as(select id,count(id) over(partition by id rows between unbounded preceding and unbounded following) as 'num'from t1
),
t3 as(select *,dense_rank() over(partition by null order by num desc) as 'rank'from t2
)
select id,num 
from t3 
where t3.rank = 1
limit 1

理解就是加好友是相互的!!!!!!!!

 把两列数据并成一列  然后窗口函数分组排序

三、176. 第二高的薪水 - 力扣(LeetCode)

也是窗口函数分组排序  但是这个题就比较麻烦 需要考虑空结果集输出null

select ifnull((with t1 as(select *,dense_rank() over(partition by null order by salary desc) as 'rank'from Employee),t2 as(select distinct salary as 'SecondHighestSalary' from t1where t1.rank = 2)select SecondHighestSalary from t2
),null) as 'SecondHighestSalary'

结束三道sql!

http://www.xdnf.cn/news/267769.html

相关文章:

  • 信创开发中跨平台开发框架的选择与实践指南
  • 【AI提示词】墨菲定律思维模型
  • 网络通信领域的基础或流行协议
  • GitHub Actions 和 GitLab CI/CD 流水线设计
  • 高中数学联赛模拟试题精选学数学系列第5套几何题
  • ROS学习笔记之《ROS里那些专有名词》
  • 分布式事务解决方案
  • BG开发者日志505:项目总体情况
  • 强化学习中的策略评估与改进:从理论到实践(二)
  • 【JAVA】数组与内存模型:二维数组底层实现(9)
  • IO模型和多路复用
  • TCP协议:三次握手与四次挥手解析
  • 定时器6计时功能
  • KBNE女装是什么牌子?KBNE女装属于什么档次质量如何?
  • 琴生不等式 (Jensen‘s Inequality)
  • 基于Springboot+Mysql的校园博客系统(含LW+PPT+源码+系统演示视频+安装说明)
  • 第 13 届蓝桥杯 C++ 青少组省赛中 / 高级组 2022 年真题(编程第一题)
  • 马克思最基本的哲学思想--改造世界以实现人的自由全面发展--deepseek
  • linux的时间轮
  • 音视频开发成长之路与音视频知识总结
  • Python实例题:Python获取房天下数据
  • 【第23节 系统工程】
  • 《解锁GCC版本升级:开启编程新世界大门》
  • PyTorch_张量转换为numpy数组
  • 【教学类-34-10】20250503(通义万相)4*3蝴蝶拼图(圆形、三角、正方、半圆的凹凸小块+参考图灰色)
  • 3392. 统计符合条件长度为 3 的子数组数目
  • RabbitMQ 中的六大工作模式介绍与使用
  • 【RocketMQ NameServer】- NameServer 启动源码
  • mysql安装,操作详解,适用于所有版本
  • 【25软考网工】第五章 (3)IPv6 报文格式、地址分类、过渡技术