sql笔试题-1

在oracle下sql:比较巧妙地是group by 部分

1 select max(c.team) TEAM,min(c.y) B,max(c.y)+1 E
2 from
3 (select a.team,b.y from nba a,nba b
4 where a.team=b.team and a.y-b.y=1) c
5 group by (c.y-rownum)
6 order by B

 

在mysql下的sql:由于mysql没有rownum所以用了它的替代

1 SELECT  cc.team TEAM, MIN(cc.y) BEGIN,MAX(cc.y)+1 END  FROM 
2 (SELECT aa.team ,aa.y ,  @rownum:=@rownum+1 AS rownum FROM 
3     (SELECT @rownum:=0) r ,
4     (SELECT team ,Y FROM `nba` ORDER BY Y) aa ,
5     (SELECT team ,Y FROM NBA ORDER BY Y) bb 
6 WHERE aa.team = bb.team AND aa.y=bb.y-1) cc 
7 GROUP BY (cc.y-cc.rownum)
8 ORDER BY MIN(cc.y)

结果:

 

posted on 2017-03-08 23:00  允我心安  阅读(516)  评论(0编辑  收藏  举报