内容导航
- 1. 组函数处理多行返回一行( )
- 2. 组函数不计算空值( )
- 3. where子句在分组之前对检索进行过滤 ( )
- 4. 查询公司员工工资的最大值,最小值,平均值,总和
- 5. 查询各job_id的员工工资的最大值,最小值,平均值,总和
- 6. 选择具有各个job_id的员工人数
- 7. 查询员工最高工资和最低工资的差距(DIFFERENCE)
- 8. 查询各个管理者手下员工的最低工资,其中最低工资不能低于2000,没有管理者的员工不计算在内
- 9. 查询所有部门的名字,location_id,员工数量和工资平均值
- 10. 查询公司的人数,以及在1995-1998年之间,每年雇用的人数,结果类似下面的格式:
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;