mysql实现分组后组内排序
-- 大体的思路 定义参数 根据某列的值是否相同来计数 基数为1 每有一个相同的基数+1 select scene_code, `key`, value, row_num from ( select scene_code, `key`, value, -- bak赋值为scene_code 当仅存在一个时为1 多个累加rownum 其中row_num 列别名 IF(@bak=scene_code,@rownum:=@rownum+1,@rownum:=1) as row_num, @bak:=scene_code from( select scene_code, `key`, value from rop_com_scm_detail_config -- 此处的order列必须与参数bak赋值列对应一致才分组 组内排序生效 order by scene_code asc, value desc ) a , -- 参数定义 一个rownum 一个bak ( select @rownum:=0,@bak:='') b ) c