• [Oracle SQL]Greatest and Least


    在网上看到有人问如下问题,

    已知表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
  • 相关阅读:
    Centos7 yum 安装 oracle-rdbms-server-11gR2-pre
    R语言 小程序
    Hadoop! | 大数据百科 | 数据观 | 中国大数据产业观察_大数据门户
    【R】如何确定最适合数据集的机器学习算法
    R语言 recommenderlab 包
    R语言 推荐算法 recommenderlab包
    R语言进行数据预处理wranging
    统计学 nested_design 嵌套设计
    [LeetCode] 160. 相交链表
    [LeetCode] 155. 最小栈
  • 原文地址:https://www.cnblogs.com/fangwenyu/p/1654542.html
Copyright © 2020-2023  润新知