技术开发 频道

Oracle SQL:经典查询练手四篇

--------16.列出各种工作的最低工资。---------
SQL> select job,avg(sal) from emp group by job;

JOB        
AVG(SAL)
--------- ----------
ANALYST         3500
CLERK        
1037.5
Developer      
5500
MANAGER  
2758.33333
PM              
5500
PRESIDENT      
5000
SALESMAN        
1400

7 rows selected

--------17.列出各个部门的MANAGER(经理)的最低薪金。--------
SQL> select deptno,min(sal) from emp where job='MANAGER' group by deptno;

DEPTNO  
MIN(SAL)
------ ----------
    10       2450
    
20       2975
30       2850

--------18.列出所有员工的年工资,按年薪从低到高排序。---------
SQL> select ename,(sal+nvl(comm,0))*12 as salpersal from emp order by salpersal;

ENAME       SALPERSAL
---------- ----------
SMITH            9600
JAMES          
11400
ADAMS          
13200
MILLER          
15600
TURNER          
18000
WARD            
21000
ALLEN          
22800
CLARK          
29400
MARTIN          
31800
BLAKE          
34200
JONES          
35700
FORD            
36000
SCOTT          
48000
KING            
60000
EricHu          
66168
huyong          
66168
WANGJING        
66168

17 rows selected

   经典查询练手第二篇

  本篇相对上篇来说比较简单,如果你对本篇的各测试做得不称心如意的话,我想你是时候给自己充下电了!

  本文使用的实例表结构与表的数据如下: 

  scott.emp员工表结构如下:

SQL> DESC SCOTT.EMP;
Name     Type         Nullable
Default Comments
-------- ------------ -------- ------- --------
EMPNO    NUMBER(4)                     员工编号  
ENAME    
VARCHAR2(10) Y                员工姓名  
JOB      
VARCHAR2(9)  Y                职位    
MGR      
NUMBER(4)    Y                上级编号  
HIREDATE DATE         Y                雇佣日期  
SAL      
NUMBER(7,2)  Y                薪金    
COMM    
NUMBER(7,2)  Y                佣金    
DEPTNO  
NUMBER(2)    Y                所在部门编号
--提示:工资 = 薪金 + 佣金

  scott.dept部门表:

SQL> DESC SCOTT.DEPT;
Name   Type         Nullable
Default Comments
------ ------------ -------- ------- --------
DEPTNO NUMBER(3)                     部门编号  
DNAME  
VARCHAR2(14) Y                部门名称  
LOC    
VARCHAR2(13) Y                地点
0
相关文章