【SQL】仅出现一次的最大数据

news/2024/10/3 21:57:57 标签: sql, 数据库, MySQL

目录

语法

需求

示例

分析

代码


语法

SELECT MAX(salary) AS highest_salary

FROM employees;

MAX 语句是一种常用于数据库查询、编程语言以及数据分析中的函数,用于返回一组值中的最大值,可以结合 GROUP BY 子句使用 MAX 函数,以获取每个组的最大值。

SELECT name, salary  
FROM employee  
WHERE salary = (SELECT MAX(salary) FROM employee)

子查询(Sub Query)本质上是一个完整的SELECT语句,它可以嵌套在另一个SELECT语句、INSERT语句、UPDATE语句或DELETE语句中。子查询的输出可以包括一个单独的值(单行子查询)、几行值(多行子查询)或多列数据(多列子查询)。以上是单行子查询的示例。

  • 单行子查询:只返回一行数据的子查询语句。这种子查询通常用于比较操作,如等于、大于、小于等。
  • 多行子查询:返回多行数据的子查询。这种子查询通常与IN、ANY或ALL谓词一起使用,以进行集合比较。
  • 此外,子查询还可以根据其执行方式分为相关子查询和非相关子查询:
  • 相关子查询:子查询的执行依赖于外部查询。换句话说,子查询中的表用到了外部的表,并进行了条件关联。因此,每执行一次外部查询,子查询都要重新计算一次。
  • 非相关子查询:子查询不依赖于外部查询,可以在外部查询执行之前独立执行。这种子查询通常只执行一次。

需求

MyNumbers 表:

+-------------+------+
| Column Name | Type |
+-------------+------+
| num         | int  |
+-------------+------+

该表可能包含重复项(换句话说,在SQL中,该表没有主键)。
这张表的每一行都含有一个整数。
单一数字 是在 MyNumbers 表中只出现一次的数字。

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

查询结果如下例所示。
 

示例

输入:
MyNumbers 表:
+-----+
| num |
+-----+
| 8   |
| 8   |
| 3   |
| 3   |
| 1   |
| 4   |
| 5   |
| 6   |
+-----+
输出:
+-----+
| num |
+-----+
| 6   |
+-----+
解释:单一数字有 1、4、5 和 6 。
6 是最大的单一数字,返回 6 。
输入:
MyNumbers table:
+-----+
| num |
+-----+
| 8   |
| 8   |
| 7   |
| 7   |
| 3   |
| 3   |
| 3   |
+-----+
输出:
+------+
| num  |
+------+
| null |
+------+
解释:输入的表中不存在单一数字,所以返回 null 。

分析

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

按照num分组,group by num 

通过count确定单一数据,having count(num)=1

找出最大的单一数字

分两步,先单一数据,后最大

先通过自查询找出所有单一数据,(select num from MyNumbers group by num having count(num)=1) 

通过max()函数查找最大的单一数据,select max(num)

设置别名,避免重名,as n

如果不存在 单一数字 ,则返回 null 。

一个很妙的点,当MAX()函数在没有行可供计算时,它将返回NULL。因此,如果MyNumbers表中的所有num值都不是唯一的,这个查询将返回NULL。

代码

select max(num) num 
from 
    (select num 
    from MyNumbers 
    group by num 
    having count(num)=1) n


http://www.niftyadmin.cn/n/5689017.html

相关文章

【PCL】Ubuntu22.04 安装 PCL 库

文章目录 前言一、更新系统软件包二、安装依赖项三、下载 PCL 源码四、编译和安装 PCL五、测试安装成功1、 pcd_write.cpp2、CMakeLists.txt3、build 前言 PCL(Point Cloud Library)是一个开源的大型项目,专注于2D/3D图像和点云处理。PCL为点…

elasticsearch设置账号和密码

1、es安装,挂载路径根据实际情况修改 docker run -d --restart always \ --name es \ -e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ -e "discovery.typesingle-node" \ -e "TZAsia/Shanghai" \ -v /mnt/data/efk/es/data:/usr/share/elast…

Hadoop-HDFS-core-site.xml,hdfs-site.xml,yarn-site.xml,krb5.conf 都是做什么的?

hdfs的core-site.xml core-site.xml是Hadoop集群的核心配置文件,包含了 Hadoop 全局级别的配置设置。这些设置不仅影响 HDFS(Hadoop Distributed File System),还影响 YARN 和 MapReduce 等其他组件。: 常见配置 fs…

马铃薯病害数据集:农业智能领域的核心资源与技术创新应用(猫脸码客 第206期)

马铃薯病害数据集 农业智能领域的核心资源与技术创新应用 摘要:本文全面阐述了马铃薯病害数据集在现代农业中的核心地位及其广泛应用。重点介绍了数据集的内容构成、目标定位及其在机器学习与深度学习领域的关键作用,特别是在卷积神经网络(…

Linux高级编程_27_系统调用

文章目录 系统调用函数分类系统编程概述系统调用概述**类UNIX系统的软件层次** 用户态和内核态系统调用与库函数的关系文件操作符概述文件磁盘权限 系统调用之文件操作open:打开文件close:关闭文件write:写入read:读取 文件状态fcntl 函数stat 函数 st_mode的值示例 1&#xff…

2024年09月CCF-GESP编程能力等级认证C++编程一级真题解析

本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制…

计231 作业1:熟悉C语言实验环境

问题 A: hello world 这个直接输出就好&#xff0c;没什么好说的吧 #include<stdio.h>int main() {printf("hello world");return 0; }问题 B: 按要求输出 这道题注意一下换行应该就没有什么问题了&#xff0c;一共三行&#xff0c;用三个printf来打印三…

十进制转十六进制 ← Python字符串

【知识点】 ● chr() 函数与 ord() 函数示例&#xff1a; >>> ord(0) 48>>> chr(48) 0>>> ord(9) 57>>> chr(57) 9>>> ord(A) 65>>> chr(65) A>>> ord(F) 70>>> chr(70) F ● 巧妙利用字符串的“连…