server取出多个最小值 sql_sql语句,需要取出多个字段列中的最大值和最小值

今天写

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值