Oracle 分组函数

-- -- nvl函数可以使分组函数强制包含含有空值的记录
-- select avg(nvl(comm,0)) from emp;--包含null值记录
-- select avg(comm) from emp;--不含null值记录


-- --distinct会消除重复记录后在使用组函数
-- select count(distinct deptno) from emp;
-- select count(deptno) from emp;


练习一

1.查询部门20的员工,每个月的工资总和及平均工资。
select sum(sal) "工资总和",avg(sal) "平均工资"
from emp
where deptno=20;

2.查询工作在CHICAGO的员工人数,最高工资及最低工资。
select max(sal) "最高工资",min(sal) "最低工资"
from emp e join dept d on e.DEPTNO=d.DEPTNO
where d.loc = 'CHICAGO';

3.查询员工表中一共有几种岗位类型。

select distinct(job) from emp;


--第六章练习2
1.查询每个部门的部门编号,部门名称,部门人数,最高工资,最低工资,工资总和,平均工资。
select d.deptno,d.dname,count(e.ename),
max(e.sal),min(e.sal),sum(sal),avg(sal)
from dept d join emp e on e.deptno=d.deptno
group by d.deptno,d.dname

--第六章练习2
2.查询每个部门,每个岗位的部门编号,部门名称,岗位名称,部门人数,最高工资,最低工资,工资总和,平均工资。
select d.deptno 部门编号,d.dname 部门名称,e.job 岗位名称,count(e.empno) 部门人数,max(e.sal),min(e.sal),sum(e.sal),avg(e.sal)
from dept d
join emp e on e.deptno=d.deptno
group by d.deptno,d.dname,e.job;


3.查询每个经理所管理的人数,经理编号,经理姓名,要求包括没有经理的人员信息。
select count(d.ename) "管理的人数", e.empno "经理编号",e.ename "经理姓名"
from emp e ,emp d
where e.empno =d.mgr
or d.mgr is null
group by e.empno,e.ename;


1.查询部门人数大于2的部门编号,部门名称,部门人数
select d.deptno,d.dname,count(e.ename)
from dept d
join emp e on d.deptno=e.deptno
group by d.dname,d.deptno
having(count(e.ename)>2);


2.查询部门平均工资大于2000,且人数大于2的部门编号,部门名称,部门人数,部门平均工资,并按照部门人数升序排序。
SELECT d.deptno,d.dname,count(e.ename),avg(e.sal)
FROM dept d ,emp e
where d.deptno = e.deptno
group by d.deptno ,d.DNAME
having (count(e.ename)>2)
AND avg(e.sal)>2000
order by 3;


select d.deptno,d.dname,count(e.ename),avg(e.sal)
from dept d
join emp e on d.deptno=e.deptno
group by d.dname,d.deptno
having(count(e.ename)>2)
order by count(e.ename) ;



-- 第六章课后习题
• 1.查询部门平均工资在2500元以上的部门名称及平均工资。
select d.dname ,avg(e.sal)
FROM dept d ,emp e
WHERE d.DEPTNO =e.DEPTNO
GROUP BY d.dname --GROUP BY 用在分组函数中
HAVING (avg(sal)>2500);

select d.dname ,avg(e.sal)
from dept d
join emp e on d.deptno=e.deptno
group by d.dname
having(avg(e.sal)>2500);


----第六章课后习题2
• 2.查询员工岗位中不是以“SA”开头并且平均工资在2500元以上的岗位及平均工资,并按平均工资降序排序。
SELECT e.job 岗位,avg(e.sal) 平均工资
from emp e
WHERE job not like 'SA%'
group by e.job
having (avg(e.sal)>2500)
order by avg(e.sal) desc;


----第六章课后习题
3.查询部门人数在2人以上的部门名称、最低工资、最高工资,并对求得的工资进行四舍五入到整数位。
select d.dname,round(min(e.sal),0),round(max(e.sal),0)
from emp e join dept d on e.DEPTNO = d.DEPTNO
GROUP BY d.dname
having count(e.ename)>2;

--第六章课后习题 4
4.查询岗位不为SALESMAN,工资和大于等于2500的岗位及每种岗位的工资和。
SELECT * from EMP;
select e.job , sum(e.sal)
from emp e
group by e.job
having e.job not like 'SALESMAN'
and sum(e.sal) >=2500;

--第六章课后习题
5.显示经理号码和经理姓名,这个经理所管理员工的最低工资,没有经理的KING也要显示,
不包括最低工资小于3000的,按最低工资由高到低排序。
select m.empno 经理编号,m.ename,min(e.sal)
from emp e left join emp m on (e.mgr=m.empno)
group by m.empno,m.ENAME
having (min(e.sal)>=3000)
order by 3 desc;


6.写一个查询,显示每个部门最高工资和最低工资的差额。
SELECT d.dname 部门名称, max(e.sal) 最高工资,min(e.sal) 最低工资, max(e.sal)-min(e.sal) 工资差额
from emp e,dept d
WHERE e.DEPTNO = d.DEPTNO
group by d.dname;
计量经济学是研究经济现象的数量关系的一门学科。它运用数学和统计学的方法来分析和解释经济现象,并通过建立经济模型来预测和评估经济政策的效果。以下是一些计量经济学的重要知识点: 1. 回归分析:回归分析是计量经济学中最常用的方法之一,用于研究两个或多个变量之间的关系。它可以通过建立回归方程来量化变量之间的关系,并进行模型估计和推断。 2. 假设检验:假设检验是计量经济学中的一项重要工具,用于判断经济模型的有效性和参数的显著性。它可以帮助我们确定经济关系是否真实存在,以及变量之间的影响是否具有统计显著性。 3. 面板数据分析:面板数据是同时包含多个个体和多个时间观测的数据,例如跨国公司的财务数据或家庭的消费数据。面板数据分析可以通过考虑个体和时间的固定效应来控制个体和时间的异质性,从而提供更准确的估计结果。 4. 差分法:差分法是计量经济学中用于解决内生性问题的一种方法。通过对同一实体的不同时期数据进行比较,差分法可以消除个体固定效应和时间固定效应的影响,从而更准确地估计变量之间的关系。 5. 动态面板数据模型:动态面板数据模型是对面板数据进行建模的一种方法。它可以捕捉到个体和时间的动态变化,并分析变量之间的短期和长期关系。 6. 处理方法:处理方法是计量经济学中处理内生性问题的一种方法。它通过利用可观测的外生变量来估计内生变量的影响,从而解决内生性引起的估计偏误问题。 7. 时间序列分析:时间序列分析是研究时间序列数据的变化规律和趋势的方法。它可以帮助我们预测未来的经济变化,并评估经济政策的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值