Oracle基础知识4 : 单表查询3

–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表↑

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值