Oracle数据库之内置函数练习

在这里插入代码片 --统计条数
 select count(*) from emp;--推荐的写法
 select count(empno)from emp;--count函数统计空列,返回0
 select count(comm)from emp;--聚合函数忽略null
 select *from emp;
 --统计平均值
 select avg(p.sal) from emp p;--聚合函数忽略空值,算平均数的时候个数也忽略空值的个数
 selsect sum(age)from emp p;--聚合函数除count外,对空列操作 返回null
select *from emp;
--最大、最小、求和
select max(p.sal)最大工资,min(p.sal) 最小工资,sum(p.sal) 工资总和,count(*) 人数 from emp p;
--统计每个部门的最高工资,最低工资,人数,按部门分组统计 group by
select max(p.sal)最大工资,min(p.sal) 最小工资,sum(p.sal) 工资总和,count(*) 人数 from emp p group by deptno;
select max(p.sal)最大工资,min(p.sal) 最小工资,sum(p.sal) 工资总和,count(*) 人数 ,deptno 部门编号 from emp p group by deptno;
--一个非常重要的规则:聚合列和非聚合列不能在一起使用,除非这列在group by之后
--group by 之后可以跟多列,用,隔开
  select max(p.sal) 最大工资,
         min(p.sal) 最小工资,
         sum(p.sal) 工资总和,
         count(*) 人数,
         deptno 部门编号
    from emp p
   group by deptno;
---总结一个语法:select 聚合列,聚合列,非聚合列A from 表 by 非聚合列A;正确
-----------------select 聚合列,聚合列,非聚合列B from 表 by 非聚合列A;错误

  select max(p.sal) 最大工资,
         min(p.sal) 最小工资,
         sum(p.sal) 工资总和,
         count(*) 人数,
         deptno 部门编号,
         empno 雇员编号
    from emp p
   group by deptno,empno;--逻辑错误
   --作业:统计一下雇员信息,按年份统计一下入职人数,显示年份和人数两个列
   -------按职位统计一下,人数,平均工资,最高工资
   select *from emp;
   select hiredate 年份, count(*) 人数 from emp p group by hiredate;
   select max(p.sal) 最高工资, avg(p.sal) 平均工资, count(*) 人数, job 职位
     from emp p
    group by job;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值