下表記錄了奪冠球隊的名稱及年份:
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 |
# 建立表
create table if not exists nba(
team VARCHAR(),
y int()
);
# 插入資料
insert into nba(team,y) values
('活塞',),
('公牛',),
('公牛',),
('公牛',),
('火箭',),
('火箭',),
('公牛',),
('公牛',),
('公牛',),
('馬刺',),
('湖人',),
('湖人',),
('湖人',),
('馬刺',),
('活塞',),
('馬刺',),
('熱火',),
('馬刺',),
('凱爾特人',),
('湖人',),
('湖人',);
# 查詢sql
SELECT @ROWNUM:[email protected]+ AS ROWNUM, MAX(nn.team) team,MIN(nn.y) B,MAX(nn.y)+ E
FROM(SELECT @ROWNUM:[email protected]+,n2.team,n2.y,@ROWNUM,[email protected]
FROM (SELECT * FROM nba) n1
INNER JOIN
(SELECT * FROM nba) n2
ON n1.team=n2.team,
(select @ROWNUM:=) t
WHERE n1.y=n2.y+
) nn, (select @ROWNUM:=) tt
GROUP BY ([email protected])
ORDER BY B;