资源描述:
《oracle里的分组语句》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、/*使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)dept部门表(deptno部门编号/dname部门名称/loc地点)工资=薪金+佣金*/--1.列出在每个部门工作的员工数量、平均工资和平均服务期限。selectdeptno,count(*),trunc(avg(sal+nvl(comm,2)))asavgsal,to_char(to_date
2、('0001-01-01','yyyy-mm-dd')+avg(sysdate-hiredate)-366-31,'yy"年"mm"月"dd')avgdayfromempgroupbydeptno;--2.列出所有员工的姓名、部门名称和工资。selectename,dname,(nvl(comm,0)+sal)as工资fromemp,deptwhereemp.deptno=dept.deptno;--3.列出从事同一种工作但属于不同部门的员工的一种组合。selecte.ename,e.job,e.deptno,d.job,d.deptn
3、ofromempe,empdwheree.job=d.jobande.deptno<>d.deptno;--4.列出所有部门的详细信息和部门人数。selectd.*,(selectcount(*)fromempwheredeptno=d.deptno)as人数fromdeptd;--5.列出各种工作的最低工资。selectjob,min(nvl(comm,0)+sal)fromempgroupbyjob;--6.列出各个部门的MANAGER(经理)的最低薪金。selectdeptno,min(sal)fromempwherejob='M
4、ANAGER'groupbydeptno;--7.列出所有员工的年工资,按年薪从低到高排序。selectempno,ename,(nvl(comm,0)+sal)*12as年薪fromemporderby年薪;--8.找出月薪相同的员工selecte.empno,e.salfromempe,empawhere(e.sal=a.sal);--9.列出至少有一个员工的所有部门。select*fromdeptwheredeptnoin(selectdistinctdeptnofromemp);--10.列出薪金比“SMITH”多的所有员工。s
5、elect*fromempwheresal>(selectsalfromempwhereename='SMITH');--11.列出所有员工的姓名及其直接上级的姓名。selectename,(selectenamefromempwhereempno=e.mgr)asmgrfromempe;--12.列出受雇日期早于其直接上级的所有员工。select*fromempewherehiredate<(selecthiredatefromempwhereempno=e.mgr);--13.列出所有“CLERK”(办事员)的姓名及其部门名称。se
6、lectename,dnamefromemp,deptwherejob='CLERK'andemp.deptno=emp.deptno;--14.列出最低薪金大于1500的各种工作。selectjobfromempgroupbyjobhavingmin(sal)>1500;--15.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。selectenamefromempwheredeptno=(selectdeptnofromdeptwheredname='SALES');--16.列出薪金高于公司平均薪金的
7、所有员工。select*fromempwheresal>(selectavg(sal)fromemp);--17.列出与“SCOTT”从事相同工作的所有员工。select*fromempewhereexists(select*fromempwherejob=e.jobandename='SCOTT');--18.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。selectename,salfromempwheresal=any(selectsalfromempwheredeptno=30);--19.列出薪金高于在部门30工作的
8、所有员工的薪金的员工姓名和薪金。selectename,salfromempwheresal>all(selectsalfromempwheredeptno=30);--20.列出比“SCOTT”大两个月以