SQL多列查询最大值

直接从某一列查询出最大值或最小值很容易,通过group by字句对合适的列进行聚合操作,再使用max()/min()聚合函数就可以求出。

样本数据如下:

key_id x y z
A 1 2 3
B 5 5 2
C 4 7 1
D 3 3 8

求查询每个key的最大值,展示结果如下:

key_id col
A 3
B 5
C 7
D 8

方案一:

对于列数不是很多的可以用case when语句,

select key_id,

case when

case when x > y then x else y end < z then z

else case when x < y then y else x end

end as gre

from sherry.greatests

方案二:

如果有4列,5列可以先转为行数据再用聚合函数求,

select key_id, max(col) from

(select key_id, x as col from sherry.greatests

union all

select key_id, y as col from sherry.greatests

union all

select key_id, z as col from sherry.greatests) as foo

group by key_id

原文地址:https://www.cnblogs.com/xitingxie/p/9547300.html

时间: 2024-10-24 02:28:25

SQL多列查询最大值的相关文章

SQL动态列查询

数据库中为了实现表格数据的自由设置,我们经常设计纵表,或者列定义的表(如下KeyValue),定义一个列超级多的表中每个字段的意义. 但是在设计时简单的东西却很容易被人们忘记,如下一个简单但是很松散的列表查询. --CREATE TABLE KeyValue --( --[key] NVARCHAR(50) , --[value] NVARCHAR(50) --) CREATE TABLE TableNumber ( Name NVARCHAR(50), Filed1 NVARCHAR(50),

6、SQL Server 数据查询

一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的基本结构 [WITH<common_tale_expression>] SELECT select_list [INTO new_table_name] [FROM table_source][where search_condition] [GROUP BY group_by_expressio

JAVA-Unit03: SQL(基础查询) 、 SQL(关联查询)

Unit03: SQL(基础查询) . SQL(关联查询) 列别名 当SELECT子句中查询的列是一个函数 或者表达式时,那么查询出来的结果集 中对应的该字段的名字就是这个函数或者 表达式的名字.为此可以为这一列添加 别名,这样结果集中该字段就使用别名 作为该列的名字. 若希望别名区分大小写或者含有空格,那么 该别名可以使用双引号括起来. SELECT ename,sal*12 "s al" FROM emp AND,OR AND优先级高于OR,可以通过括号 提高优先级. SELECT

SQL Server 数据查询 整理

一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的基本结构 [WITH<common_tale_expression>] SELECT select_list [INTO new_table_name] [FROM table_source][where search_condition] [GROUP BY group_by_expressio

SQL Server 数据查询

一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的基本结构 [WITH] SELECT select_list [INTO new_table_name] [FROM table_source][where search_condition] [GROUP BY group_by_expression] [HAVING search_conditi

SQL结构化查询语句

SQL结构化查询语句 SQL定义了查询所有关系型数据库的规则. 1.通用语法 SQL语句可以单行或者多行书写,以分号结尾 可以使用空格和缩进增强可读性 不区分大小写,但是关键字建议大写 3种注释 注释内容:多行注释/*;-- 注释内容 2.SQL分类 DDL(Date Definition Language)数据定义语言 用来定义数据库对象:数据库.表.列等,包括关键字:create,drop.alte DML(Data Manipulation Language)数据操作语言,增删改 用来对数

SQL server 数据查询功能 中

查询数据 排序 查询结果集通常是按照id排序的,也就是根据主键排序.这也是大部分数据库的做法.如果我们要根据其他条件排序怎么办?可以加上ORDER BY子句. 例如按照成绩从低到高进行排序: SELECT id, name, gender, score FROM students ORDER BY score; 如果要反过来,按照成绩从高到底排序,我们可以加上DESC表示"倒序": SELECT id, name, gender, score FROM students ORDER B

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

50种方法优化SQL Server数据库查询(转载)

原文地址:http://www.cnblogs.com/zhycyq/articles/2636748.html 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用