row_number()
select @rownum:=@rownum+1 as rn,t.* from (select @rownum:=0) r, test_table t
解释:给test_table里的数据设置行号, rn是行号
row_number() over(partition by)
select 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
from (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;
解释:对t_user_city表按照user_id,city_id两个字段做分组设置行号,rank是分组的行号,order by里一定要有两个分组字段及第三个排序字段
SQL行号与分组行号设置
本文介绍如何使用SQL语句中的row_number()函数为数据行设置行号,并通过partition by子句实现按特定字段分组后的行号设置。示例包括基本的行号设置和基于多个字段分组的行号设置。
6675

被折叠的 条评论
为什么被折叠?



