数据库笔试

本帖最后由 kamanda 于 2012-7-30 09:32 编辑


如题
已知结果集如下(与实际nba数据不符请见谅,只为了测试用)
TEAM YEAR
1 活塞 1990
2 公牛 1991
3 公牛 1992
4 公牛 1993
5 火箭 1994
6 火箭 1995
7 公牛 1996
8 公牛 1997
9 公牛 1998
10 马刺 1999
11 湖人 2000
12 湖人 2001
13 湖人 2002

需要的结果是
team 开始年份 结束年份
公牛 1991 1993
火箭 1994 1995
公牛 1996 1998
湖人 2000 2002

解释下: 就是求连续两次或以上夺冠的队伍的名称, 开始年份,和结束年份


-----------------------------------------------------------------------------------------------------
附上成功运行的语句(表名nba,列名team,year):
1) 使用row_number函数的:
select team,min(year),max(year)
from (
select nba.*,row_number() over(partition by nba.team order by nba.year)rn
from nba)
group by team,year-rn
having count(*)>1
order by 2;
2)不使用函数的
select team,min(year) ,max(year)
from (
select * from nba order by team,year)
group by team,year-rownum
having count(*)>1
order by 2;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值