您的位置:首页 > 数据库 > Oracle

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

2017-05-23 22:27 393 查看
最近项目赶着提交测试,赶着上线。问题不断作为一个新人也着实为项目组长捏了一把汗。忙了一天,都是在修改之前的模块,一天下来感觉好像没做什么,看着其他人忙的抓狂,自己总有一丝愧疚感。下班回家了,写点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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: