Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SQL聚合函数 MAX

SQL聚合函数 MAX

作者头像
用户7741497
发布于 2022-03-27 07:37:19
发布于 2022-03-27 07:37:19
1.2K00
代码可运行
举报
文章被收录于专栏:hml_知识记录hml_知识记录
运行总次数:0
代码可运行

SQL聚合函数 MAX

返回指定列中最大数据值的聚合函数。

大纲

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MAX([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

参数

  • ALL - 可选-将聚合函数应用于所有值。 ALLMAX返回的值没有影响。 它提供了SQL-92兼容性。
  • DISTINCT - 可选-一个DISTINCT子句,指定考虑每个惟一值。 DISTINCTMAX返回的值没有影响。 它提供了SQL-92兼容性。
  • expression - 任何有效的表达式。 通常是包含要返回的最大值的值的列的名称。
  • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
  • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

MAX返回与表达式相同的数据类型。

描述

MAX聚合函数返回表达式的最大值。 通常,表达式是查询返回的多行中字段的名称(或包含一个或多个字段名称的表达式)。

MAX可以在引用表或视图的SELECT查询或子查询中使用。 MAX可以在SELECT列表或HAVING子句中与普通字段值一起出现。

MAX不能在WHERE子句中使用。 MAX不能在JOINON子句中使用,除非SELECT是子查询。

与大多数其他聚合函数一样,MAX不能应用于流字段。 尝试这样做会产生一个SQLCODE -37错误。

与大多数其他聚合函数不同,ALLDISTINCT关键字,包括MAX(DISTINCT BY(col2) col1),在MAX中不执行任何操作。 它们是为了SQL-92的兼容性而提供的。

数据值

MAX使用的指定字段可以是数字或非数字。 对于数字数据类型字段,maximum被定义为数值中的最大值; 因此-3大于-7。 对于非数值型数据类型字段,maximum定义为字符串排序序列中的最大值; 因此'-7''-3'高。

一个空字符串 ('')值被视为CHAR(0)

谓词使用为字段定义的排序规则类型。 默认情况下,字符串数据类型字段是用SQLUPPER排序规则定义的,它不区分大小写。

当字段定义的排序类型为SQLUPPER时,MAX返回全大写字母的字符串。 因此,SELECT MAX(Name)返回'ZWIG',而不管数据的原始字母大小写。 但是因为比较是使用大写排序法执行的,所以HAVING Name=MAX(Name)子句选择的是Name值为 'Zwig', 'ZWIG', 'zwig'的行。

对于数值,返回的刻度与表达式刻度相同。

在派生MAX聚合函数值时,数据字段中的NULL值将被忽略。 如果查询没有返回行,或者返回的所有行的数据字段值为NULL,则MAX返回NULL

当前事务期间所做的更改

与所有聚合函数一样,MAX总是返回数据的当前状态,包括未提交的更改,而不考虑当前事务的隔离级别。

示例

以下查询返回Sample.Employee数据库中的最高(最高)工资:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT '$' || MAX(Salary) As TopSalary
     FROM Sample.Employee

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
「分布式」实现分布式锁的正确姿势
最近看到好多博主都在推分布式锁,实现方式很多,基于db、redis、zookeeper。zookeeper方式实现起来比较繁琐,这里我们就谈谈基于redis实现分布式锁的正确实现方式。
一个程序员的成长
2020/11/25
8660
「分布式」实现分布式锁的正确姿势
Redis-KV数据库Java连接以及Jedis包的使用
描述:Redis是一个开源的Key-Value数据缓存,和Memcached类似。现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。
全栈工程师修炼指南
2020/10/23
1.3K0
Redis-KV数据库Java连接以及Jedis包的使用
Redis分布式锁解决方案
我们知道分布式锁的特性是排他、避免死锁、高可用。分布式锁的实现可以通过数据库的乐观锁(通过版本号)或者悲观锁(通过for update)、Redis的setnx()命令、Zookeeper(在某个持久节点添加临时有序节点,判断当前节点是否是序列中最小的节点,如果不是则监听比当前节点还要小的节点。如果是,获取锁成功。当被监听的节点释放了锁(也就是被删除),会通知当前节点。然后当前节点再尝试获取锁,如此反复)
用户2032165
2018/09/03
8410
Redis分布式锁解决方案
Redis的批量操作是什么?怎么实现的延时队列?以及订阅模式、LRU。
这次的内容是我自己为了总结Redis知识而扩充的,上一篇其实已经总结了几点知识了,但是Redis的强大,以及适用范围之广可不是单单一篇博文就能总结清的。所以这次准备继续总结,因为第一个问题,Redis的批量操作,是我在面试过程中被真实问到的,当时没答上来,也是因为确实没了解过Redis的批量操作。
纪莫
2021/01/05
4670
Redis的批量操作是什么?怎么实现的延时队列?以及订阅模式、LRU。
Redis分布式锁的正确实现方式(Java版)
https://wudashan.cn/2017/10/23/Redis-Distributed-Lock-Implement/
全栈程序员站长
2022/09/05
1.4K0
Redis Pipeline管道命令使用
上过程称为Round Trip Time(RTT,往返时间),mget和mset命令节约了RTT,但是大部分指令不支持批量操作。
黑洞代码
2021/01/14
1.5K0
Redis Pipeline管道命令使用
Redis基本数据结构类型及方法
Redis基本数据结构类型 string hash list set zset Demo代码 import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.ListPosition; import java.util.HashMap; import java.util.Map; impo
itze
2022/10/31
3080
Jedis是如何支持Cluster的
前面说了 Jedis(2.9.0) 如何支持 Redis Sentinel 的,今天看看 Jedis 是如何支持 Redis Cluster 的。
Bug开发工程师
2018/12/27
2K0
Jedis是如何支持Cluster的
java架构之路-(Redis专题)SpringBoot连接Redis超简单
  上次我们搭建了Redis的主从架构,哨兵架构以及我们的集群架构,但是我们一直还未投入到实战中去,这次我们用jedis和springboot两种方式来操作一下我们的redis
小菜的不能再菜
2019/10/25
1.3K0
java架构之路-(Redis专题)SpringBoot连接Redis超简单
RedisPool操作Redis,工具类实例
redis.properties 配置文件内容 redis.pool.maxActive=100 redis.pool.maxIdle=20 redis.pool.maxWait=3000 redis.pool.testOnBorrow=false redis.pool.testOnReturn=false redis.ip=127.0.0.1 redis.port=6379 redis.port1=6380 redis.password=**** package com.szreach.rcrp
生活创客
2018/01/30
1.9K0
缓存数据库Redis
Redis基本概念和NOSQL 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点
不愿意做鱼的小鲸鱼
2022/09/24
2.7K0
缓存数据库Redis
Redis的Java客户端 Jedis
Jedis: 一款java操作redis数据库的工具. 使用步骤: 1. 下载jedis的jar包 2. 使用
暴躁的程序猿
2022/03/24
8070
Redis的Java客户端 Jedis
Redis 入门篇
Redis诞生于2009年全称是Remote Dictionary Server 远程词典服务器,是一个基于内存的键值型NoSQL数据库。
捞月亮的小北
2023/12/01
2110
Redis 入门篇
使用Redis实现延时任务(二)
前一篇文章通过Redis的有序集合Sorted Set和调度框架Quartz实例一版简单的延时任务,但是有两个相对重要的问题没有解决:
Throwable
2020/06/23
1.1K0
使用Redis实现延时任务(二)
你的Redis有类转换异常么
•该异常不是必现的,偶尔才会出现;•出现该异常后重启应用或者过一会就好了;•序列化协议使用了hessian。
luoxn28
2019/11/06
8250
快速学习Redis-Jedis客户端
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/12/11
4080
Redis部分数据结构方法小结
Redis在工程开发中还是比较常用的Nosql内存数据库,简单巩固一下它的各种数据类型与用法~
用户3003813
2018/09/06
5870
Redis部分数据结构方法小结
基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门
Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:
小小程序员
2023/04/12
4320
基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门
Flink用户画像用户画像行为特征
我们要使用的几个组件为Hadoop 2.6,HBase 1.0.0,MySQL 8,zookeeper 3.4.5,kafka 2.1.0,Flink 1.13,Canal 1.1.5。为了方便,这里都使用伪集群和单机安装。
算法之名
2021/11/10
9K0
Jedis连接池1. 什么是连接池2. Jedis的连接池3. 源码解析4. 总结
项目实例代码已上传github https://github.com/Wasabi1234/mmall 1. 什么是连接池 一般在程序中如果要和其他的系统创建连接进行交互并且连接的创建代价比较"昂贵
JavaEdge
2018/05/16
1K0
推荐阅读
相关推荐
「分布式」实现分布式锁的正确姿势
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验