为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle高级查询

哇塞,在找关于赵强老师今晚在课堂上提出来的关于Oracle表自连接的缺点及解决方法时,碰巧就找到赵强老师本人解答的视频了。厉害厉害,讲的依旧清晰明了!明白了。赞!
select deptno ,avg(sal)
from emp
group by deptno
having ave(sal) > 2000
select deptno ,avg(sal)
from emp
group by deptno ; --按照部门编号分组

select a,b,c ,组函数(x)
from table
group by a ; --这里应该写a,b,c 不能只写a 通过部门号 然后通过b c条件接着分组
只写a ora-00937 非法使用分组函数
在select 列表中所有未包含的组函数中的列 group by中都应该写
select avg(sal)
from emp
group by deptno; --这种不会展示deptno
select sum(sal)/count(*) , sum(sal)/count(sal) , avg(sal) from emp ;

count(*) 会包含空值的个数

分组函数会自动过滤掉空值

nvl函数 使得分组函数不忽略空值

nvl(comm,0) 这个函数的意思是 当该字段为空的时候返回第二个参数
当字段不为空 返回他本身

这个函数可用于自增的输入
nvl(max(sno),0))+1 最大值加一 可用于插入数据的编号
select avg (表中列字段) ,sum (表中列字段) from 表; --列出 表中字段的平均值,和
select max (表中的字段), min (表中的字段) from 表 ; --列出表中字段的 最大值 最小值
select count(*) from 表; 输出这个表中一共有的数据条数
select count(distinct 表中字段) from 表; 输出表中不重复字段的个数
distinct 用于去重

最新回答 / 寒山问道
select sum(sal) from emp where deptno=10;select avg(sal) from emp where deptno = 10;试一试估计你Sql写错了吧
select
pm_ci.ci_id as ci_id
, listagg(to_char(pm_stu.stu_name), ',') within group(order by pm_stu.stu_id) as stu_name
from
pm_ci
inner join pm_stu
on substr(pm_ci.stu_id, instr(pm_ci.stu_id, pm_stu.stu_id),1) = pm_stu.stu_id
group by pm_ci.ci_id;
select
pm_ci.ci_id as ci_id
, listagg(to_char(pm_stu.stu_name), ',') within group(order by pm_stu.stu_id) as stu_name
from
pm_ci
inner join pm_stu
on instr(pm_ci.stu_id, pm_stu.stu_id) > 0
group by pm_ci.ci_id;

最新回答 / 慕前端5229447
用流量看视频,就会提示,你在在设置里打开非wifi播放设置

最新回答 / 慕田峪9362115
sql标准格式  select * from 表  1表全用的子查询查出了结果 ,最后不需要from表了,就必须用伪表dual来满足格式需要了
嗯 受教了 以前还真没注意
谢谢老师,复习了新知识
讲课思路非常清晰,感谢老师
nvl(comm,0)
可以将为空的项用0代替显示
老师讲得非常好,十分细致,条理清楚,易理解。
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消