1row_number() 2select @rownum:=@rownum+1 as rn,t.* from (select @rownum:=0) r, test_table t
解释:给test_table里的数据设置行号, rn是行号
row_number() over(partition by)
1select if(@uid=t.user_id and @cid=t.city_id,@rank:=@rank+1,@rank:=1) as rank,t.*,@uid:=t.user_id,@cid:=t.city_id 2from (select @uid:=null,@cid:=null,@rank:=0) r, (select user_id,city_id,city_name,id from t_user_city order by user_id,city_id,id) t; 3 4set @rank:=0; 5set @CI:=null; 6select SId,CId,score,rank from( 7select 8SId, CId,score, 9@rank:=if(@CI=CId,@rank+1,1) as rank, 10@CI:=CId 11from data.sc 12order by CId,score desc) as t1