Oracle查询语句简单回顾(二)

最近项目赶着提交测试,赶着上线。问题不断作为一个新人也着实为项目组长捏了一把汗。忙了一天,都是在修改之前的模块,一天下来感觉好像没做什么,看着其他人忙的抓狂,自己总有一丝愧疚感。下班回家了,写点sql压压惊吧。

  • group function组函数
    max求最大值
    min求最小值
    avg求平均值
    count求总个数
    sum求和
    获取所有员工的平均工资并按照特定格式输出
    select to_char(avg(sal),'$9999,9999.9999') from emp
    获取左右员工的平均工资,保留两位小数
    select round(avg(sal),2) from emp;
    获取部门编号为10的员工总数
    select count(*) from emp where deptno = 10
    count获取总数,如果*为某个字段,则该字段只要不为空就算一个
    select count(ename) from emp;
    获取部门编号的总数(去除重复)
    select count(distinct deptno) from emp
    获取所有人的月薪总和
    select sum(sal) from emp;
  • group by语句
    求每个部门的平均薪水
    select avg(sal) from emp group by deptno
    求每个部门的平均薪水,带上部门编号
    select deptno,avg(sal) from emp group by deptno
    求按照部门和工作分组薪水最高的人
    select deptno,job,max(sal) from emp group by deptno,job
    求薪水最高的人的名字
    select ename from emp where sal = (select max(sal) from emp)
  • having 对分组结果筛选
    where是对单挑记录进行筛选,having是对分组结果进行筛选
    查询平均工资大于2000的部门编号及平均薪水
    select avg(sal),deptno from emp group by deptno having avg(sal) > 2000
    查询工资大于1200的员工,按照部门编号进行分组,分组后平均薪水大于1500,按照工薪倒序排列
    select ename,sal,deptno from emp where sal > 1200 group by deptno,sal,ename having avg(sal) > 1500order by avg(sal) desc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值