《Oracle Database编程指南》15-05:聚合函数实践

封面:扫描上图二维码关注课程

1. 组函数处理多行返回一行( )

对,错

2. 组函数不计算空值( )

对,错

3. where子句在分组之前对检索进行过滤 ( )

对,错

4. 查询公司员工工资的最大值,最小值,平均值,总和


SELECT  MAX(sal) ,MIN(sal) ,AVG(sal) ,SUM(sal) FROM  emp;

select max(sal) ,min(sal) ,avg(sal) ,sum(sal) from emp;

5. 查询各job_id的员工工资的最大值,最小值,平均值,总和


SELECT  MAX(sal) ,MIN(sal) ,AVG(sal) ,SUM(sal) FROM  emp  GROUP BY JOB;

select max(sal) ,min(sal) ,avg(sal) ,sum(sal) from emp group by job;

6. 选择具有各个job_id的员工人数


SELECT  JOB  ,  COUNT(JOB)  FROM  emp   GROUP  BY  JOB;

select job , count(job) from emp group by job;

7. 查询员工最高工资和最低工资的差距(DIFFERENCE)


SELECT  MAX(sal) - MIN(sal)  AS "DIFFERENCE" FROM  emp;

select max(sal) - min(sal) as “DIFFERENCE” from emp;

8. 查询各个管理者手下员工的最低工资,其中最低工资不能低于2000,没有管理者的员工不计算在内


SELECT mgr , MIN(sal)  FROM emp WHERE  sal >= 2000 AND mgr IS NOT  NULL  GROUP  BY  mgr;

select mgr , min(sal) from emp where sal >= 2000 and mgr is not null group by mgr;

9. 查询所有部门的名字,location_id,员工数量和工资平均值


SELECT deptno, COUNT(deptno) ,AVG(sal) FROM  emp GROUP  BY  deptno;


SELECT deptno,  dname  , loc  FROM dept;


SELECT  *  FROM  (SELECT deptno, COUNT(deptno) ,AVG(sal) FROM  emp GROUP  BY  deptno) empstat ,

                (SELECT deptno,  dname  , loc  FROM dept) deptstat
                
            WHERE  empstat.deptno  = deptstat.deptno;
            

10. 查询公司的人数,以及在1995-1998年之间,每年雇用的人数,结果类似下面的格式:

--total 1995	1996	1997	1998
--  30	  3	    4	    6	  7

参考代码:


SELECT  *  FROM  emp;

SELECT CASE 

        WHEN  to_char(hiredate,'YYYY') = '1980' THEN '1980'
        
        ELSE '未知'
        
        END "1980"
        
    FROM emp;
    
发布了65 篇原创文章 · 获赞 167 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/goldentec/article/details/104875429