1.2分组函数与空值

        现实中每个人都有工资,但是努力工作但人可以得到奖金。工资常有而奖金不常有。是故讲分组函数与空值。

        举个栗子。哇咔咔。

                统计员工的平均工资【工资人人有份哦】

                select    sum(sal)/count(*)    from    emp;

                select    sum(sal)/count(sal)    from    emp;

                select    avg(sal)    from    emp;

                以上SQL的结果都是一样的哦。

                统计员工的平均奖金【奖金不是人人都有的哦】

                select    sum(comm)/count(*)    a    ,    select    sum(comm)/count(comm)    b    ,    select  avg(comm)    c    from    emp;

                结果是b、c相同与a不同,原因就是因为comm这一列中包含空值。也就是说count(*)和  count(sal)是不一样的。

                        select    count(*),count(comm)    from    emp;

                        count(*)是有14条,而count(comm)只有4条

                我们可以得到一个结论就是分组函数是会自动忽略空值的

                        select    count(*),count(nvl(comm,0))    from    emp;

                        nvl函数的作用,如果第一个函数为空的话返回第二个函数,如果不为空返回第一个函数自己

                以后要根据实际需要决定分组函数要不要加nvl

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 1,853评论 0 2
  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 1,959评论 0 4
  • 笔记: 一、聚合函数:计数 最大值 最小值 平均数 求和 1.计数 COUNT() 忽略NULL值 方式1:COU...
    凤之鸠阅读 5,332评论 0 1
  • 2018年1月13日 星期六 我们一路向西,来到了大理。大理是个非常优美的古城,清清姐姐说,这是她向往的地方,所以...
    云淑阅读 414评论 10 8
  • 记忆的某张油画。 一定有你的身影。 你在那边。 弓身扶腰欲立。 我在这边。 山坡凝望出神。 鼻头一酸。 眼角微扬。...
    谁的青春不迷茫崇明阅读 254评论 0 0