Oracle中取多个字段多个列最大值最小值的方法
来源:互联网 发布:php 设置时区 编辑:程序博客网 时间:2024/05/01 22:04
今天写sql语句,需要取出多个字段列中的最大值和最小值。
本来想到的做法比较麻烦,要分别取出max(one),max(two),max(three),放到pb中在编程处理。
后来找到个greatest 函数和least函数,只用写greatest (max(one),max(two),max(three))就解决问题,least用法同,good。
求多列的最大值,oracle中的greatest 函数
已知表TB的数据如下
SQL> select * from tb;
ID CHINESE MATH ENGLISH
---------- ---------- ---------- ----------
1001 89 98 87
1002 81 87 79
现在要得到如下的结果,该怎么来解决
ID CHINESE MATH ENGLISH MAX MIN
---------- ---------- ---------- ---------- ---------- ----------
1001 89 98 87 98 87
1002 81 87 79 87 79
想了半天也没想到啥好办法,首先自然而然想到用MAX和MIN函数 ,但是显然这两个是聚集函数 ,是要作用在同一个column的一个Group上面的,而现在要得到的MAX和MIN的值却是作用于每一行上面的,如果要借助于MAX()和 MIN()的话,还需要对原表的数据结构进行下处理(先进行转列操作unpivot),但是显然不是很好。
看到有个网友回帖用greatest 和 least函数 来做,真是简洁漂亮,也为自己的孤陋寡闻而狂汗呀
解决方式如下
SQL> SELECT id, chinese, math, english,
2 greatest (chinese, math, english) max,
3 least(chinese, math, english) min
4 FROM tb;
ID CHINESE MATH ENGLISH MAX MIN
---------- ---------- ---------- ---------- ---------- ----------
1001 89 98 87 98 87
1002 81 87 79 87 79
SQL> select * from tb;
ID CHINESE MATH ENGLISH
---------- ---------- ---------- ----------
1001 89 98 87
1002 81 87 79
现在要得到如下的结果,该怎么来解决
ID CHINESE MATH ENGLISH MAX MIN
---------- ---------- ---------- ---------- ---------- ----------
1001 89 98 87 98 87
1002 81 87 79 87 79
想了半天也没想到啥好办法,首先自然而然想到用MAX和MIN函数 ,但是显然这两个是聚集函数 ,是要作用在同一个column的一个Group上面的,而现在要得到的MAX和MIN的值却是作用于每一行上面的,如果要借助于MAX()和 MIN()的话,还需要对原表的数据结构进行下处理(先进行转列操作unpivot),但是显然不是很好。
看到有个网友回帖用greatest 和 least函数 来做,真是简洁漂亮,也为自己的孤陋寡闻而狂汗呀
解决方式如下
SQL> SELECT id, chinese, math, english,
2 greatest (chinese, math, english) max,
3 least(chinese, math, english) min
4 FROM tb;
ID CHINESE MATH ENGLISH MAX MIN
---------- ---------- ---------- ---------- ---------- ----------
1001 89 98 87 98 87
1002 81 87 79 87 79
- Oracle中取多个字段多个列最大值最小值的方法
- oracle 取出多个字段列中的最大值和最小值
- oracle取出多个字段列中的最大值和最小值
- Oracle 取出多个字段列中的最大值和最小值
- oracle取出多个字段列中的最大值和最小值
- oracle 多列取最大值最小值
- JS获取最大值与最小值的方法
- Yii里查找某个字段的最大值和最小值
- 最大值的最小值
- 另类方法求两个整数的最大值 最小值
- 求最大值最小值的方法 时间复杂度O(n)
- C++中生成int类型的最大值和最小值方法
- 15_09_16 Array 数组中求最大值,最小值的方法
- js 数组取出最大值最小值的2种方法
- 获取数组最大值和最小值的简便方法
- 求数组的最大值 最小值问题 -Math方法
- Javascript中获取数组最大值和最小值的方法
- 取数组最大值和最小值的方法汇总
- 使用Apache的Proxy模块实现对被代理网站的访问
- 刷新frameset窗口
- 函数调用之三角1.1
- 第十一周上机任务(换分币)
- Linux开机启动和用户登录启动配置
- Oracle中取多个字段多个列最大值最小值的方法
- 话说##
- 嵌入式资料地址汇总
- 井号图 函数的调用
- 我的第二十九个C++上机报告(求四个数的最大公约数)
- mfc中用子对话框的退出键将子对话框和其父对话框一起关闭
- 笔试面试经常考察的知识点收集(未完待续)
- apache2服务器配置经历
- [Arduino教程3] Digital Read Serial-从串口读取数字信号