技术开发 频道

Oracle SQL:经典查询练手四篇

  ER 图:

  用SQL完成以下问题列表:

/*---------------------------------------------
1. 各个部门平均、最大、最小工资、人数,按照部门号升序排列。
2. 各个部门中工资大于5000的员工人数。
3. 各个部门平均工资和人数,按照部门名字升序排列。
4. 列出每个部门中有同样工资的员工的统计信息,列出他们的部门号,工资,人数。
5. 列出同部门中工资高于1000 的员工数量超过2 人的部门,显示部门名字、地区名称。
6. 哪些员工的工资,高于整个公司的平均工资,列出员工的名字和工资(降序)。
7. 哪些员工的工资,介于50号 和80号部门平均工资之间。
8. 所在部门平均工资高于5000 的员工名字。
9. 列出各个部门中工资最高的员工的信息:名字、部门号、工资。
10. 最高的部门平均工资是多少。
---------------------------------------------
*/

  各试题解答如下(欢迎大家指出不同的方法或建议!):


/*--------1、各个部门平均、最大、最小工资、人数,按照部门号升序排列。---------*/
SQL
> SELECT DEPARTMENT_ID AS 部门号,AVG(SALARY) AS 平均工资
  
2         ,MAX(SALARY) AS 最高工资,MIN(SALARY)  AS 最低工资
  
3         ,COUNT(*) AS 人数
  
4  FROM EMPLOYEES
  
5  GROUP BY DEPARTMENT_ID
  
6  ORDER BY DEPARTMENT_ID ASC;

   部门号       平均工资       最高工资       最低工资         人数
------         ----------         ----------         ----------         ----------
       10           4400               4400               4400                 1
    
20          9500              13000           6000                  2
    
30           4150              11000           2500                  6
    
40           6500               6500               6500                  1
    
50             3475.55555     8200               2100                 45
    
60           5760               9000               4200                  5
    
70          10000              10000              10000                  1
    
80             8973.85294     14000           6100                 34
    
90             21333.3333     24000              20000                  3
  
100           8600              12000           6900                  6
  
110          10150              12000           8300                  2
                
7000               7000               7000                  1

12 rows selected

/*--------2、各个部门中工资大于5000的员工人数。---------*/
SQL
> SELECT DEPARTMENT_ID,COUNT(*) FROM EMPLOYEES
  
2  WHERE SALARY > 5000
  
3  GROUP BY DEPARTMENT_ID;

DEPARTMENT_ID  
COUNT(*)
------------- ----------
           20          2
          
30          1
          
40          1
          
50          5
          
60          2
          
70          1
          
80         34
          
90          3
          
100          6
          
110          2
                      
1

11 rows selected
0
相关文章