Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1501|回复: 0

,]面试題sql语句,帮小弟看看 】

[复制链接]

该用户从未签到

发表于 2011-10-31 13:02:20 | 显示全部楼层 |阅读模式
TEAM (varchar2) Y(int)
---------- ------------------------2---------------
gongniu 1992
公牛 1993
火箭 1994
火箭 1995
公牛 1996
公niu 1997
公牛 1998
马刺 19929
湖人 2000
湖人 2001
湖人 2002
马刺 2003
活塞 2004
马刺 2005
热火 2006
马刺 2007
凯尔特人 2008
湖人 2009
湖ren 2010

写一duansqlyu句,要qiu查出nage球dui是连续两年以上夺冠的(bao含2年),显shi夺冠的开始和结束时jian,顯示xiaoguo如下:

TEAM START_HM END_HM
---------- ---------- ----------
公牛 1996 1998
火箭 1994 1995
公牛 1992 1993
湖人 2000 2002
湖ren 2009 2010
欢迎來DaoJava学习者論坛,转载请注明地址:http://www.javaxxz.com.
回复

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:02:47 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

with t as 是啥呀
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:03:04 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

SQL code SELECT
    b.[TEAM],b.[Y] AS  START_HM,MIN(a.[Y]) AS END_HM
FROM
(Select * from TableName AS a WHERE  NOT EXISTS(SELECT 1 FROM TableName WHERE [TEAM]=a.[TEAM] AND [Y]=a.[Y]+1)) AS a
INNER JOIN
(Select * from TableName AS a WHERE  NOT EXISTS(SELECT 1 FROM TableName WHERE [TEAM]=a.[TEAM] AND [Y]=a.[Y]-1)) AS b ON a.[TEAM]=b.[TEAM] AND b.[Y] <=a.[Y]
GROUP BY b.[TEAM],b.[Y]
HAVING MIN(a.[Y])-b.[Y]>=1
ORDER BY MIN(a.[Y])-b.[Y] DESC
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:03:07 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

mysql:
SQL code
SELECT t2.team,
       MIN(t2.y) start_hm,
       MAX(t2.y) end_hm
  FROM (
        SELECT team,y,y - rank y1 from (
            SELECT tmp.team,
                   tmp.y,
                   IF(@groupid = tmp.team,@rank := @rank + 1,@rank := 1) AS rank,
                   @groupid := tmp.team
              FROM (SELECT team,y FROM teamtb ORDER BY y) tmp,
                   (SELECT @rank := 0,@groupid := '') a
            ) b
        ) t2
GROUP BY t2.team,
          t2.y1
HAVING COUNT(*) > 1
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:03:14 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

oracle里面 hudingchen 写法是对的,mysql不懂。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:03:21 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

不會写,学习了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:03:30 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

TEAM (varchar2) Y(int)
---------- ---------------------------------------
公牛 1992
公牛 1993
火箭 1994
火箭 1995
公牛 1996
公牛 1997
公牛 1998
马刺 1999
湖人 2000
湖人 2001
湖人 2002
马刺 2003
活塞 2004
馬刺 2005
热火 2006
马刺 2007
凯尔特人 2008
湖人 2009
湖人 2010

写一段sql語句,要求查出那个球隊是连续兩年以上夺冠的(包含2年),显示夺冠的开始和结束时间,显示效果如下:

TEAM START_HM END_HM
---------- ---------- ----------
公牛 1996 1998
火箭 1994 1995
公牛 1992 1993
湖人 2000 2002
湖人 2009 2010  
湖人不是有5次吗???
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-10-31 13:03:36 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

没有測试:
select TEAM,sum(TEAM) number,max(Y) START_HM,min(Y)END_HM
from table_name
where number>=2 and START_HM-END_HM<=number
group by TEAM
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:03:51 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

大哥,你哪个眼看到湖人不是5次了啊?
TEAM START_HM END_HM
湖人 2000 2002
湖人 2009 2010
start,end这两次字看到了么???
2000 2001 2002 2009 2010
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 13:04:08 | 显示全部楼层

Re:,]面试題sql语句,帮小弟看看

写得不错,学习了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-22 06:08 , Processed in 0.483469 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表