力扣SQL刷题

news2024/9/23 1:26:26

目录标题

      • 571. 给定数字的频率查询中位数
      • 574. 当选者
      • 608. 树节点
      • 612. 平面上的最近距离
      • 619. 只出现一次的最大数字

571. 给定数字的频率查询中位数

题型:给出数值和对应频率,返回中位数
解答:分别升序和降序排列。中位数正序和倒序所处的位置都要大于等于(考虑到奇数)所有元素的一半
中位数应满足:其前面所有数的数量小于总数一半,其后面所有数的数量也小于总数一半

在这里插入图片描述
先新增排序列,再筛选,最后可能也不只有一个满足要求,所以求avg

select round(avg(num),1) as median
from
(select a.*,sum(frequency)over(order by num) as r1,
sum(frequency)over(order by num desc) as r2,
sum(frequency)over() as r3
from Numbers  as a) b
where r1>=r3/2 and r2>=r3/2

574. 当选者

题型:输出计数最多的值
解答:group by 、order by count(id) desc 和limit 1 的合作
因为先group by 再order(按count计数后排序) 再limit
在这里插入图片描述
在这里插入图片描述

select Candidate.name
from
(select candidateId
from Vote
group by candidateId
order by count(id) desc
limit 1 ) a
join Candidate 
on a.CandidateId=Candidate.id

608. 树节点

题型:新增一列,对不同情况输出不同值
解答:通常case when 能做的,用(selelct where)union (selelct where)或者if 都可以试试求解
在这里插入图片描述
法一:不同情况分别取出后,再union结合-思路简单,过程复杂
注意:in ---- not in
is null ----- is not null (是非空)

select id,"Root" Type
from tree
where p_id is null

union

select id,"Inner" Type
from tree
where  p_id is not null and id in (select distinct a.p_id from tree a where p_id is not null)

union

select id,"Leaf" Type
from tree
where id  not in (select distinct a.p_id from tree a where p_id  is not null) and  p_id is not null

法二:case when
注意:任何与null值的对比都将返回null ,是 任何

select if(1 = null, 'true', 'false')  ----返回false
select if(1 != null, 'true', 'false')  ----返回false

所以下面的输出中,本该是"Leaf"的全变成了"Inner" 因为t1.id not in (中有null值)返回一定为false

select id,
(case when t1.id in (select b.id from tree b where b.p_id is null ) then "Root"
when t1.id not in (select distinct a.p_id from tree a) then "Leaf"
else "Inner" end )  Type
from tree t1 

下面两个代码都正确

select id,
(case when t1.id in (select b.id from tree b where b.p_id is null ) then "Root"
when t1.id not in (select distinct a.p_id from tree a where a.p_id is not null) then "Leaf"
else "Inner" end )  Type
from tree t1 
SELECT id AS `Id`,
    CASE
        WHEN tree.id = (SELECT atree.id FROM tree atree WHERE atree.p_id IS NULL)
          THEN 'Root'
        WHEN tree.id IN (SELECT atree.p_id FROM tree atree)
          THEN 'Inner'
        ELSE 'Leaf'
    END AS Type
FROM
    tree
ORDER BY `Id`;

法三:if(要满足的条件,满足时的值,不满足时的值)
if的嵌套

select id,
if (t1.id in (select b.id from tree b where b.p_id is null ) ,"Root",
     (if(t1.id in (select distinct a.p_id from tree a ),"Inner", "Leaf"))
)  Type
from tree t1 

612. 平面上的最近距离

题型:每一行如何与其他行进行连接
解答:自连接然后where筛选
在这里插入图片描述
在这里插入图片描述
注意:两列不全等 — (p1.x,p1.y)<>(p2.x,p2.y) —(p1.x != p2.x) or (p1.y != p2.y)
平方 — pow(x,2)
开平方 ---- sqrt()
保留小数点 — round(x,2)

select  round(min(sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2))),2)  shortest
from Point2D p1 join Point2D p2 
on (p1.x,p1.y)<>(p2.x,p2.y)

如何优化? — 比较时任意两个数重复比较了两次

select  round(min(sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2))),2)  shortest
from Point2D p1 join Point2D p2 
on (p1.x>p2.x ) or(p1.x =p2.x and p1.y > p2.y )

619. 只出现一次的最大数字

题型:空变成null输出
解答:在内层select上套一层select,就可以自动在找不到的时候返回null
空表示表格没有任何输出,null表示输出为null
在这里插入图片描述

select
(select num
from MyNumbers
group by num
having count(1)=1
order by  num desc
limit 1 ) as num

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能图片素材高清,机器人图片卡通 素材

1、做一个人工智能的ppt需要哪些素材 不能理解你的问题。ppt仅仅是一个做幻灯的软件&#xff0c;可以插入图片、动画、音乐、过场等幻灯的功能&#xff0c;还谈不上有人工智能的能力。人工智能需要有更为强大的类似人脑思维的能力&#xff0c;简单的说人工智能是可以思考的机器…

【HBase——陌陌海量存储案例】2. HBase表结构设计(中)

前言 本文是陌陌海量存储案例——HBase表结构设计&#xff08;中&#xff09;&#xff0c;介绍ROWKEY设计原则、项目初始化。 4.5 ROWKEY设计原则 4.5.1 HBase官方的设计原则 避免使用递增行键/时序数据 如果ROWKEY设计的都是按照顺序递增&#xff08;例如&#xff1a;时间…

信息论复习—差错控制编码

目录 差错控制编码的基本概念&#xff1a; 差错控制编码的主要类型和方式&#xff1a; 差错控制编码的主要类型&#xff1a; 差错控制方式&#xff1a; 简单的差错控制方法&#xff1a; 奇偶校验码&#xff1a; 重复码&#xff1a; 信道编码的基本概念和定理*: 信道编…

4 反向传播

文章目录问题提出计算图中的神经网络改进&#xff08;激活函数&#xff09;反向传播前馈计算反向传播pytorch当中的前馈与反馈Tensor张量课程代码课后作业课程来源&#xff1a; 链接课程内容部分来源&#xff08;觉得归纳的非常好的&#xff09;&#xff1a; 链接以及&#xff…

MySQL中的运算符

目录 一.运算符 简介 算术运算符 比较运算法 逻辑运算符 位运算符 实例演示 一.运算符 简介 数据库中的表结构确立后&#xff0c;表中的数据代表的意义就已经确定。通过MySQL运算符进行运算&#xff0c;就可以获取到表结构以外的另一种数据。 例如&#xff0c;学生表中…

[数据结构笔记]二叉树初阶

基本知识 树 -节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff1b; -叶节点或终端节点&#xff1a;度为0的节点称为叶节点&#xff1b; -非终端节点或分支节点&#xff1a;度不为0的节点&#xff1b; -父节点&#xff1a;若一个节点含有子节点&#xff…

Mybatis 通过接口实现 sql 执行原理解析

使用过 mybatis 框架的小伙伴们都知道&#xff0c;mybatis 是个半 orm 框架&#xff0c;通过写 mapper 接口就能自动实现数据库的增删改查&#xff0c;但是对其中的原理一知半解&#xff0c;接下来就让我们深入框架的底层一探究竟1、环境搭建首先引入 mybatis 的依赖&#xff0…

Consul服务注册与发现

目录 一、Consul简介 &#xff08;一&#xff09;官网 &#xff08;二&#xff09;特点 二、安装并运行Consul &#xff08;一&#xff09;官网安装说明 &#xff08;二&#xff09;下载 &#xff08;三&#xff09;使用开发模式启动 三、服务提供者 四、服务消费者 …

怎么压缩pdf文件?选对方法其实很简单!

相信许多人在使用设备的时候都会面对这样一个问题&#xff0c;那就是设备内存不足。仿佛不管我们多么努力的节省空间&#xff0c;总是会到头来遇到储存空间不足得难题&#xff0c;尤其是一些比较大的pdf文件&#xff0c;特别占据我们的设备内存&#xff0c;那么你知道怎么压缩p…

0128 Web API基本认知

作用使用JS去操作html和浏览器分类DOM&#xff08;文档对象模型&#xff09;BOM&#xff08;浏览器对象模型&#xff09;DOM是什么&#xff1a;Document Object Model-----文档对象模型&#xff0c;用来呈现以及与任意HTML或XML文档交互的API&#xff0c;浏览器提供的一套专门用…

【Linux】一文掌握Linux权限

环境&#xff1a;centos7&#xff0c;腾讯云服务器Linux文章都放在了专栏&#xff1a;【Linux】欢迎支持订阅&#x1f339;前言权限 一词相信大家都不陌生&#xff0c;与我们的生活密切相关。小区里的门禁制度、公司里的管理制度、学校里的校规规定、甚至是社交平台上的一些设置…

python 手机相机传感器信息计算

传感器信息计算 输入传感器尺寸以上已红米12pro为例 输入传感器尺寸 1/1.4英寸 0.7142857 输入像素2亿 200000000 得到以下结果 和宣传中的传感器信息一致 附源码 import sympyclass CMosInfo(object):"""传感器信息计算"""def __init__(…

C 程序设计教程(19)—— 数组和指针(二):字符数组与字符串

C 程序设计教程&#xff08;19&#xff09;—— 数组和指针&#xff08;二&#xff09;&#xff1a;字符数组与字符串 该专栏主要介绍 C 语言的基本语法&#xff0c;作为《程序设计语言》课程的课件与参考资料&#xff0c;用于《程序设计语言》课程的教学&#xff0c;供入门级用…

word实用操作:几个关于录入和排版的小妙招

对于职场人来说&#xff0c;工作中使用Word早已成了习惯。而如何提高Word的技术&#xff0c;那简直是职场人一生都需要研究探索的课题。因此&#xff0c;今天小编将为大家分享几个实用的Word小技巧&#xff0c;这些技巧貌似不起眼&#xff0c;但是学会后&#xff0c;可以大大提…

如何查linux服务器的带宽占用?哪些进程占用带宽?

前言操作系统&#xff1a; Linux操作环境&#xff1a; Centos7 / ubuntulinux查看服务器带宽具体方法   一、使用speedtest-cli命令查看下载和上传最大流量值因为命令是python的&#xff0c;所以需要先下载一个python&#xff0c;用pip下载次命令&#xff1b;123yum -y insta…

七个 Vue 项目用得上的 JavaScript 库分享

文章目录前言一、vueuse二、vue-js-modal三、vue-wait四、good-table五、vue-notification六、tree select七、egjs-infinite grid总结前言 借助开源库加速 Vue 项目的开发进度是现代前端开发比较常见的方式&#xff0c;平常收集一些 JavaScript 库介绍&#xff0c;在遇到需要的…

上古神兵,先天至宝,Win11平台安装和配置NeoVim0.8.2编辑器搭建Python3开发环境(2023最新攻略)

毫无疑问&#xff0c;我们生活在编辑器的最好年代&#xff0c;Vim是仅在Vi之下的神级编辑器&#xff0c;而脱胎于Vim的NeoVim则是这个时代最好的编辑器&#xff0c;没有之一。异步支持、更好的内存管理、更快的渲染速度、更多的编辑命令&#xff0c;是大神Thiago de Arruda对开…

第九层(5):STL之stack

文章目录前情回顾stack概念stack容器需要注意的地方stack类内的构造函数stack类内的赋值操作stack类内的插入stack类内的删除stack类内的访问stack类内的大小操作下一座石碑&#x1f389;welcome&#x1f389; ✒️博主介绍&#xff1a;一名大一的智能制造专业学生&#xff0c;…

Knowledge-based-BERT(三)

多种预训练任务解决NLP处理SMILES的多种弊端&#xff0c;代码&#xff1a;Knowledge-based-BERT&#xff0c;原文&#xff1a;Knowledge-based BERT: a method to extract molecular features like computational chemists&#xff0c;代码解析继续downstream_task。模型框架如…

HTML中的div和span标签

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>HTML中的div和span标签</title> </head> <body> <!-- 1、div和span是什么&#xff1f;有什么用…