MySQL基础练习题44-只出现一次的最大数字

news2024/12/26 12:29:34

目录

题目

情况一

准备数据

分析数据

情况二

准备数据

 实现一


题目

单一数字 是在 MyNumbers 表中只出现一次的数字。

找出最大的 单一数字 。如果不存在 单一数字 ,则返回 null 。

情况一

准备数据

## 创建库
create database db;
use db;

## 创建表
Create table If Not Exists MyNumbers (num int)

## 向表中插入数据
Truncate table MyNumbers
insert into MyNumbers (num) values ('8')
insert into MyNumbers (num) values ('8')
insert into MyNumbers (num) values ('3')
insert into MyNumbers (num) values ('3')
insert into MyNumbers (num) values ('1')
insert into MyNumbers (num) values ('4')
insert into MyNumbers (num) values ('5')
insert into MyNumbers (num) values ('6')

分析数据

单一数字有 1、4、5 和 6 。

6 是最大的单一数字,返回 6 。

with t1 as (
    select if(count(num)=1,num,null) cn from mynumbers
    group by num
)select max(cn) num from t1
;

 说明:使用if函数将count(num)>1设置为null,其余正常输出,最后使用max函数输出最大但艺术字;若没有单一数字,就会输出null。

 

情况二

准备数据

Truncate table MyNumbers
insert into MyNumbers (num) values ('8')
insert into MyNumbers (num) values ('8')
insert into MyNumbers (num) values ('3')
insert into MyNumbers (num) values ('3')
insert into MyNumbers (num) values ('3')
insert into MyNumbers (num) values ('4')
insert into MyNumbers (num) values ('4')
insert into MyNumbers (num) values ('4')

 实现一

with t1 as (
    select if(count(num)=1,num,null) cn from mynumbers
    group by num
)select max(cn) num from t1;

select max(num) as num from MyNumbers
where num in (
    select num from MyNumbers group by num having  count(*) =1
);

说明: 使用HAVING COUNT(*) = 1是一个条件用来过滤出只出现一次的组。

如果主查询的WHERE子句中的IN子句没有找到任何匹配的值,那么MAX(num)将没有输入值来计算,因此会返回NULL


                

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

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

相关文章

腾讯云短信正文模板每个变量取值最多支持6个字符出现的问题及应对方法

目录 一、参考链接二、应对方法 一、参考链接 对于长期未使用的账号及 2024 年 1 月 25 日后开通的新账号,腾讯云对短信正文模板的变量进行了限制: 验证码短信:每个变量取值最多支持6位纯数字。 非验证码短信:每个变量取值最多支…

MySQL架构设计

MySQL架构设计 查询语句: select * from users;返回结果为: 问题: 一条SQL查询语句是如何执行的? Server层 MySQL架构可以分为server层和Engine层两部分: 连接器(connector) 1. 连接管理 …

关于python中的get,set方法

一般在python面向对象中,每个类内都会有其所对应的属性。 而在定义属性值的时候,可能还得会对这些属性值进行修改和获取。为了确保代码的安全性,封装性和可操作性,我们可以使用get,set方式去操控。 get方法用于获取属…

贝莱德与摩根大通的最新季度持仓分析

近期,华尔街的两大投资巨头贝莱德和摩根大通公布了其2024年第二季度的13F报告,揭示了他们在投资组合上的最新动向。通过分析这些持仓数据,我们可以更清楚地了解这些顶级投资机构的投资策略和市场偏好。 贝莱德的科技巨头与能源投资 根据贝莱…

Trilium Notes:你的个人知识库!【送源码】

简介 Trilium Notes是一款功能全面的层次化笔记应用,通过树形结构构建个人知识库,支持Markdown编辑、网页内容剪切、笔记搜索与映射,并特别提供了基于画布的自由涂画功能,极大地提升了笔记的灵活性和创造性,是知识管理…

移动UI:把握好这9点,轻松设计积分兑换页面。

设计移动UI的积分兑换页面需要考虑用户体验和交互设计,以下是一些设计建议: 1. 清晰的积分信息展示: 在页面顶部或者中间位置展示用户当前的积分数量,让用户清晰地了解自己的积分情况。 2. 商品列表展示: 以列表或者…

[数据集][目标检测]违规撑伞检测数据集VOC+YOLO格式341张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):341 标注数量(xml文件个数):341 标注数量(txt文件个数):341 标注类别…

浅看MySQL数据库

有这么一句话:“一个不会数据库的程序员不是合格的程序员”。有点夸张,但是确是如此。透彻学习数据库是要学习好多知识,需要学的东西也是偏难的。我们今天来看数据库MySQL的一些简单基础东西,跟着小编一起来看一下吧。 什么是数据…

什么是树的先/中/后序遍历

前言 很久没有写c教程(有几个月)了,今天来讲讲树 为什么之前不讲树因为我不会但我现在能写出一些树的选择题了 首先我们画一棵树: 有些潦草 遍历是什么 我们要研究先/中/后序遍历,我们应该先知道什么叫遍历 遍历…

论文精要:《对静态分析缺陷报告进行聚类,以降低维护成本》

1. 前言 周末找到一篇《对静态分析缺陷报告进行聚类,以降低维护成本》,读了之后受到不少启发,特此将笔记整理出来。 论文出处: Published in: 2013 20th Working Conference on Reverse Engineering (WCRE)Date of Conference:…

疫情期间高校人员管理

TOC springboot322疫情期间高校人员管理 绪论 1.1 选题背景 当人们发现随着生产规模的不断扩大,人为计算方面才是一个巨大的短板,所以发明了各种计算设备,从结绳记事,到算筹,以及算盘,到如今的计算机&a…

C语言家教记录(六)

导语 本次授课的内容如下:指针,指针和数组 辅助教材为 《C语言程序设计现代方法(第2版)》 指针 指针变量 计算机按字节划分地址,每个地址访问一个字节 指针变量指向变量的地址,指的是变量第一个字节的…

MySQL InnoDB中一个update语句从执行到提交的全过程(1)

目录 一、开启事务 二、sql解析、查询计划生成 三、查询要修改的数据 1、读buffer pool的过程 buffer pool的结构组成 1)Free List (空闲链表) 2)LRU List (最近最少使用链表) 3)Flush List (刷新链表) 三条链表之间的关系 2、怎么…

[Linux][OS][信号的保存和处理]

目录 信号的处理 1. 在内核中的表示 2. 相关概念 3. 信号集操作函数 4.sigprocmask 5.sigpending 信号的捕捉 重谈地址空间 信号的处理 1. 在内核中的表示 普通信号,多次产生只会记录一次 信号范围 [1,31],每一种信号都要有自己的一种处理方式…

Java Spring|day3.SpringBoot

Spring Boot 定义 从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。Spring Boot使用“习惯优于配置”的理念让你的项目快速地运行起来,使用Spring Boot很容易创建一个能独立运行、准生产级别、基于S…

SpringBoot + Hadoop + HDFS + Vue 实现一个简单的文件管理系统

1. 安装前的准备工作 1.1 更新系统并安装必要的工具 在终端中运行以下命令: sudo apt-get update sudo apt-get install -y ssh rsync curl1.2 安装 Java 如果系统中没有安装 Java,可以通过以下命令安装 OpenJDK: sudo apt-get install …

软件安全测试的必要性,第三方软件测试机构进行安全测试好处简析

在当前信息技术迅猛发展的时代,软件的安全性显得尤为重要。随着越来越多的企业依赖软件进行日常运营,软件漏洞和安全隐患所带来的风险也逐渐上升。因此,软件安全测试不再是可有可无的选择,而是每个企业必须考虑的关键环节。 一、…

Node之npm常用命令与package.json文件

新书速览|Vue.jsNode.js全栈开发实战-CSDN博客 《Vue.jsNode.js全栈开发实战(第2版)(Web前端技术丛书)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) npm常用命令 npm默认与Node.js一起安装,可以在命令行中输入…

达梦数据库系列—49.审计功能

目录 1、打开审计 2、审计级别 系统级审计 语句级审计 对象级审计 3、审计文件管理 删除审计文件 查看审计信息 4、审计分析 审计分析工具Analyzer 审计分析工具dmaudtool 1、打开审计 0:关闭审计1:打开普通审计2:打开普通审计和…

qt 5.15.2 使用pdf

1. 安装Qt 5.15.2 选择对应编译器和源码: 安装后已有pdf对应的库和源码: 将QtPdf和QtPdfWidgets目录拷贝到msvc2019_64/include(根据需要用到的编译器而定) 将C:\Qt\5.15.2\Src\qtwebengine\src\pdf\api所有文件拷贝到C:\Qt\5.15.2\msvc2019_64\include\…