mysql 中如何实现over 方法(开窗函数)

 

在绝大多数关系型数据库中都实现了over方法(开窗算法) 。但是mysql是没有实现这个方法。
所以在一下场景下是很难受的。
比如:对同一组中的人员按照成绩排序或只取同一组中的前2名。

 

下面是一个示例。在这里我就不去验证了。
大致讲解一下该sql的含义:

 

select column01,column02,column03,column04 from (
select if(@pa=ff.column01,@rank:=@rank+1,@rank:=1) rank,
 @pa:=ff.column01 column01,ff.column02,ff.column03,ff.column04
 from (
select  a.column01,a.column02 ,a.column03, a.column04
 from TableName a
order by  a.column01 asc ,a.column02 asc ) ff,
(select @rank:=0,@pa='') tt   ) AA
where rank=1 ;

 

去除第一列有重复的数据行

 

OVER!!!!!!!!!!!!!!!!!!!