–ANY(list) 与 ALL(list)
–ANY(list) 大于最小的
–ALL(list) 大于最大的
–ANY(list) 小于最大的
–ALL(list) 小于最小的
SELECT ename,sal
FROM emp
WHERE sal > ANY(1250,2500,3000);
–查看工资大于(1250,2500,3000)中任意一个的员工
–ORDER BY (排序)
SELECT ename,sal
FROM emp
ORDER BY sal ASC;--升序
SELECT ename,sal
FROM emp
ORDER BY sal DESC;--降序
–ORDER BY 是有优先级的,首先按照第一个字段排序,
–当该字段中有重复记录时,将这些记录按照第二个字段排序
SELECT ename,job,sal,deptno
FROM emp
WHERE job IN ('SALESMAN','CLERK')
ORDER BY sal DESC,deptno ASC;
–查询职业是”SALESMAN”或”CLERK”的员工,通过工资降序排序,工资相同的通过部门号升序排序
SELECT * FROM emp
ORDER BY comm ASC;
–按照绩效将员工信息排序
–当被排序的字段记录为空值时,无条件被认为是最大值
–聚合函数
–MAX()/MIN()/SUM()/AVG()/COUNT()(统计多少个记录)
SELECT COUNT(1) FROM emp;--统计第一个字段
SELECT COUNT(comm) FROM emp;--按照 comm 统计, (不统计空值)
SELECT COUNT(*) FROM emp; --统计全部数据
SELECT CEIL(AVG(sal)),deptno
FROM emp
GROUP BY deptno;
–求各部门平均工资
–GROUP BY :
SELECT MAX(sal),MIN(sal),job
FROM emp
GROUP BY job;
–查询每个部门的最高最低工资
–出现 GROUP BY 都会出现聚合函数 , 但是出现聚合函数不一定出现 GROUP BY
SELECT CEIL(AVG(sal)),deptno,job
FROM emp
GROUP BY deptno,job;
–GROUP BY 按照多字段分组时 , 两字段(或多字段)相同的查出一条 , 不同的查出多条
–SELECT中有的非聚合字段,GROUP BY中必须要有 。GROUP BY 中的字段 SELECT 中不一定有
SELECT COUNT(*) ,deptno ,job
FROM emp
GROUP BY deptno,job;
–查询同部门同职位的员工一共多少人
SELECT AVG(sal),deptno
FROM emp
GROUP BY deptno
HAVING AVG(sal)>2000;
–查看部门的平均工资,前提是该部门的平均工资高于2000
–HAVING 就是 GROUP BY 的 WHERE (HAVING 不能没有 GROUP BY)
SELECT MAX(sal),deptno
FROM emp
GROUP BY deptno
HAVING AVG(sal)>2000;
–查看平均工资高于2000的那些部门的最高工资是多少
emp表↑
dept表↑