oracle 复杂嵌套查询复杂查询 不知道怎么做

Oracle复杂查询入门教程_数据库技术_Linux公社-Linux系统门户网站
你好,游客
Oracle复杂查询入门教程
来源:Linux社区&
作者:tongsh
--查询工资最高的员工select ename,job,sal from emp where sal = (select max(sal) from emp);select ename,job,sal*13+nvl(comm,0)*13 s from--查询平均工资,总工资 select avg(nvl(sal,0)),sum(nvl(sal,0))--查询奖金select avg(comm),sum(comm)--group by 和havingselect avg(sal),sum(sal),deptno fromselect count(comm)select count(ename)----显示每个部门的每种岗位的平均工资和最高工资select avg(sal),sum(sal),deptno,job from emp group by deptno, job----显示部门平均工资低于2000的部门和他的平均工资--思路1:查询出每个部门的平均工资 select avg(sal),deptno from emp GROUP--思路2:挑出低于2000的部门select avg(sal),deptno from emp GROUP by deptno HAVING AVG(sal)&5000;----1,分组函数(avg(),sum().....)只能出现在选择列表,having,order by 子句中----2,如果在select语句中同时包含有group by ,having,order by 那么它们的顺序是group by ,having,order by ----3,在选择列中如果有列,表达式,和分组函数,那么这些列和表达式必须有一个出现在group by 子句中
相关资讯 & & &
& (08/16/:52)
& (02/08/:11)
& (09/11/:54)
& (03/25/:12)
& (01/13/:53)
& (07/18/:01)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款上传时间:
56官方微信
扫一扫发现精彩Oracle面试题之:复杂的查询与实例解析
当需要对查询到的结果进行比较复杂的处理的时候,可以借助联合查询、子查询等得到期望的结果。下面列举一个具体的经典试题,希望对读者有所启发。
1.题目要求:
表 NBA 记录了TEAM
夺冠球队的名称及年份:
--------------------------------------------------
凯尔特人 2008
请写出一条 SQL 语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少,结果如下:
TEAM BEGIN END
-------------------------------------------
2.题目分析:
这道题目可以分解为两步:
第一步:找出所有连续获得冠军的球队
连续获得冠军的球队的起止年份
3.代码实现
《1》建表并插入一些数据:
-- Create table
create table NBA
team NUMBER,
year NUMBER
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
initial 64K
minextents 1
maxextents unlimited
为了方便起见,这里仅用数字代替球队,随意插入一些测试数据:
《2》我们观察数据发现,如果连续获的一年以上的冠军,那么前一年出现的球队下一年依然会出现, 即:team(year)=team(year+1); 例如下面记录片段 :
具体的 SQL 语句为:
select n2.team,n2.year
from (select * from nba) n1
(select * from nba) n2
n1.team=n2.team
n1.year=n2.year+1
执行结果为:
《3》最后,将上面的查询结果作为子查询,对数据进行处理,因为得冠军最后一年的下面一年不是冠军, 所以结束年份为
max(year)+1:
select max(nn.team) team,min(nn.year) BeginYear,max(nn.year)+1 EndYear
(select n2.team,n2.year from (select * from nba) n1
(select * from nba) n2
n1.team=n2.team
n1.year=n2.year+1) nn
(nn.year-rownum)
order by BeginYear
下面是最终的执行结果:
4.总结思考
面对类似的面试题目或者问题,虽然涉及的知识点(子查询、连接查询等)不是很多,但是因为有一些数据的转化和查询的嵌套,可能会造成一些心理素质较差的读者手足无措。因此,面对类似的复杂问题,要学会使用&拆分法&进行分解,一步步地解决问题。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'【图文】oracle第五讲(复杂查询)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
oracle第五讲(复杂查询)
上传于||暂无简介
大小:1.56MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢播放列表加载中...
正在载入...
分享视频:
嵌入代码:
拍下二维码,随时随地看视频
韩顺平.2011最新版.玩转oracle视频教程.第14讲.orac...
上 传 者:
内容介绍:
韩顺平.2011最新版.玩转oracle视频教程.第14讲.oracle复杂查询详解②
我来说点啥
版权所有 CopyRight
| 京网文[0号 |
| 京公网安备:
互联网药品信息服务资格证:(京)-非经营性- | 广播电视节目制作经营许可证:(京)字第403号
<img src="" width="34" height="34"/>
<img src=""/>
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img width="132" height="99" src=""/>
在线人数:
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img src="///img/blank.png" data-src=""/>
<img src="///img/blank.png" data-src="http://"/>
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/>
<i data-vid="" class="ckl_plays">
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/><i data-vid="" class="ckl_plays">
没有数据!
{upload_level_name}
粉丝 {fans_count}
{video_count}
{description}

我要回帖

更多关于 oracle复杂存储过程 的文章

 

随机推荐