`
qiang106
  • 浏览: 383865 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL计算两个字段或者三个字段的最大值

阅读更多
    MAX是一个对单列数据进行操作,选择最大值,但是对于要选择同一行中两行值中较大一列,这样在sql中是没法使用的,考虑如下数据,要得到x,y中较大的一个


SQL中的MAX是不能直接使用的,但利用以下公式可以达到相应的目的,
max(x,y)=(x+y+ABS(x-y))/2
ABS(x-y)是拿到x-y的差的绝对值,同样也可以得到如下公式:
min(x,y)=(x+y-ABS(x-y))/2

因此可以得到相应的sql如下:
  select id,x,y,(x+y+abs(x-y))/2 from xy;

如果是要选择三个列中的最大值的话可以用max(x,max(y,z)),不过这样写出来的sql可是一大堆了:



考虑使用导出表,将三列数据合并到一列中来,然后再在外层Select中查出最大值,如以下脚本:
select id,MAX(m) from (
	select id,`x` as m from xyz 
		union all 
	select id,`y` as m from xyz 
		union all 
	select id,`z` as m from xyz
) u group by id;
















  • 大小: 4.7 KB
  • 大小: 5.7 KB
分享到:
评论

相关推荐

    sqlserver字段最大值加1后补0

    sqlserver字段最大值加1后补0

    对某一字段分组后,取出另一字段最大值的所有记录

    表:t_test -------------------------------------- id(int) cost(int) des Autoid(id) -------------------------------------- 1 10 aaaa 1 1 15 bbbb 2 1 20 cccc 3 ...取每一类id中cost最大的纪录

    SQL排除重复结果只取字段最大值分享

    如何用SQL排除重复结果只取字段最大值的记录?要求得到的结果(即是PID相同的记录只取ID值最大的那一条)。 代码如下:select * from [Sheet1$] awhere ID not exists (select 1 from [Sheet1$] where PID=a.PID and...

    insert和select结合实现”插入某字段在数据库中的最大值+1″的方法

    本文是mysql 数据库 问题一 将表一的数据导入表二...在表中插入数据时,某一字段取数据库中该字段的最大值,并+1,这个问题很多人都说用存储过程什么的解决,其实使用insert 和 select 结合就可以很好的解决这个问题啊

    按某一字段分组取最大(小)值所在行的数据

    按某一字段分组取最大(小)值所在行的数据

    易语言SQL基本语句模块

    易语言SQL基本语句模块源码,SQL基本语句模块,SQL_查询,SQL_添加,SQL_更新,SQL_删除,SQL_删除表,SQL_清空表,SQL_取记录数,SQL_取平均值,SQL_取最小值,SQL_取最大值,SQL_取首记录字段值,SQL_取尾记录字段值,SQL_取总计...

    MYSQL常用命令大全

    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    达梦数据库_SQL语言手册

    的功能一体化表现在以下两个方面 支持多媒体数据类型,用户在建表时可直接使用。系统在处理常规数据与 多媒体数据时达到了四个一体化:一体化定义、一体化存储、一体化检索、一体化处理,最大限 度地提高了数据库...

    MSSQL 多字段根据范围求最大值实现方法

    MSSQL 多字段根据范围求最大值实现语句,大家可以参考下

    arcgis工具

    应用工具CALCULATE AREA 或者使用VBA代码实现 新建字段并开启Advanced 写入代码,面积计算: Dim Output as double Dim pArea as Iarea Set pArea = [shape] 在最后的一个空格里面写入代码(即:字段名)pArea...

    C#在 ACCESS 表中自动编号复位及获取当前最大值SQL命令

    C#在 ACCESS 表中自动编号复位及获取当前最大值SQL命令,适于C#. 文本源码,其中执行命令的函数用伪语言表示

    oracle取最大值的三种方式,并且同时获取其它字段数据

    oracle取最大值的三种方式,并且可同时获取其它字段数据 适用于小白、对数据库不熟悉不熟练的人使用 代码有详细的注释,便于理解 纯SQL实现,下载开箱即用

    insert和select结合实现"插入某字段在数据库中的最大值+1"的方法

    今天小编就为大家分享一篇关于insert和select结合实现"插入某字段在数据库中的最大值+1"的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    经典SQL语句大全

    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 ...

    程序员的SQL金典.rar

     5.1.14 求两个变量的反正切  5.1.15 求余切  5.1.16 求圆周率π值  5.1.17 弧度制转换为角度制  5.1.18 角度制转换为弧度制  5.1.19 求符号  5.1.20 求整除余数  5.1.21 求自然对数  5.1.22 求以10为底的...

    程序员的SQL金典4-8

     5.1.14 求两个变量的反正切  5.1.15 求余切  5.1.16 求圆周率π值  5.1.17 弧度制转换为角度制  5.1.18 角度制转换为弧度制  5.1.19 求符号  5.1.20 求整除余数  5.1.21 求自然对数  5.1.22 求以10为底的...

    sql server 2000实现在乘法表及行最大值

    利用一条查询语句查出乘法表以级对一行数据N字段做MAX处理

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    SQL_Sever数据库语句大全.zip

    求max最大值、min最小值 去除左右空格函数 日期时间类型数据储存 删除表约束名称 删除触发器 删除视图语句 删除数据表 删除数据表全部数据 删除字段 声明变量 数据回滚动作(撤销动作) 数据库程序案例 数据库系统表...

Global site tag (gtag.js) - Google Analytics