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

解决方案 »

  1.   

    用程序或者存储过程吧。SQL语句比较难。 如果是ORACLE还可以用CONNECT,MYSQL中比较难。
      

  2.   

       谢了,oracle的答案会了。
      

  3.   

    sql server可以根据年和team排序 加个并列名次的列,然后按照team和名次列分组就可以
      

  4.   

    SET @a='';
    SET @b=0;SELECT team,bz,MAX(Y),MIN(Y) FROM (
    SELECT *,@b:=IF(@a=team,@b,@b+1) AS bz,@a:=team FROM ttz) a GROUP BY team,bz HAVING MAX(Y)-MIN(Y)+1>=2;