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!!!!!!!!!!!!!!!!!!!