博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle程序题之:夺冠球队
阅读量:3906 次
发布时间:2019-05-23

本文共 1199 字,大约阅读时间需要 3 分钟。

表 nba 记录了 nba(team VARCHAR2(10),y NUMBER(4))夺冠球队的名称及年份:

TEAM                   Y

-------------------------

活塞                   1990

公牛                   1991

公牛                   1992

公牛                   1993

火箭                   1994

火箭                   1995

公牛                   1996

公牛                   1997

公牛                   1998

马刺                   1999

湖人                   2000

湖人                   2001

湖人                   2002

马刺                   2003

活塞                   2004

马刺                   2005

热火                   2006

马刺                   2007

凯尔特人             2008

湖人                   2009

湖人                   2010

 

请写出一条 SQL 语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少,

结果如下:

TEAM                   B              E

------------------------------ ---------

公牛                   1991          1993

火箭                   1994          1995

公牛                   1996          1998

湖人                   2000          2002

湖人                   2009          2010

 

答案:

SELECT MAX(nn.team) team,MIN(nn.y) Beginy,MAX(nn.y)+1 Endy FROM	(SELECT n2.team,n2.y,ROWNUM,n2.y-ROWNUM 	 FROM (SELECT * FROM nba) n1  	 INNER JOIN	(SELECT * FROM nba) n2         ON	 n1.team=n2.team	 WHERE	 n1.y=n2.y+1) nnGROUP BY (nn.y-ROWNUM)ORDER BY Beginy;

1.通过自身查询,查询出连续两年获奖的球队,为了方便理解,添加了两个伪列,用于表示行号和球队开始获奖的年份

SELECT n2.team,n2.y,ROWNUM,n2.y-ROWNUM FROM (SELECT * FROM nba) n1  INNER JOIN (SELECT * FROM nba) n2ONn1.team=n2.teamWHEREn1.y=n2.y+1

查询结果

2.将上面的结果作为子查询,按开始获奖年份进行排序,最后连续获奖的一年为MAX(nn.y)+1

SELECT MAX(nn.team) team,MIN(nn.y) Beginy,MAX(nn.y)+1 Endy FROM	(SELECT n2.team,n2.y,ROWNUM,n2.y-ROWNUM	 FROM (SELECT * FROM nba) n1  	 INNER JOIN	 (SELECT * FROM nba) n2	 ON	 n1.team=n2.team	 WHERE         n1.y=n2.y+1) nnGROUP BY (nn.y-ROWNUM)ORDER BY Beginy;

查询结果

你可能感兴趣的文章
如何学好C++语言
查看>>
包的设计原则
查看>>
回顾时光 详解HTML的发展史
查看>>
MinGW与Cygwin
查看>>
用WEB标准进行开发
查看>>
[译]关于Android图形系统的一些事实真相
查看>>
J2ME下的Zlib/Gzip/Zip压缩相关
查看>>
Cygwin 的安装配置
查看>>
Cygwin基本命令的使用方法
查看>>
Java本地接口(JNI)编程指南和规范(第二章)
查看>>
有关使用xsl输出csv格式文档的实践小结
查看>>
在Ubuntu 12.04 为 Eclipse 添加快速启动项
查看>>
GCC强大背后
查看>>
Android x86模拟器Intel Atom x86 System Image配置与使用方法
查看>>
shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)
查看>>
【分享】手把手教你使用U盘安装Ubuntu系统
查看>>
Ubuntu下adb无法识别android设备的解决方法
查看>>
使用U盘安装Ubuntu系统的实践小结
查看>>
编译cscope-15.8a遇到的问题与解决方案
查看>>
ubuntu下海信Hisense E920 usb连接不上的处理与adb的连接
查看>>