mysql和oracle的分組排序sql

oracle的分組排序:

select * from (
       select row_number() over(partition by ms.school_id order by ms.create_time desc) mm,ms.* from mark_switch ms
) t1 where t1.mm=1 

mysql的分組排序:
1、mysql排序並加上序號:

select (@i:=@i+1) index,works_info_data.*
        from works_info_data ,(select @i:=0) it

2、分組後排序:

select * from 
(select
                (@i:= case 
                when @deptId = t_emp.school_id
                    then @i+1
					else 1
                    end
	            ) rownum,
                t_emp.*,
	            (@deptId:=t_emp.school_id)
        from
            (select * from mid_school_grade_info order by school_id) t_emp,#這個地方必須是排序好的表
            (select @i:=0) as a
) b
where b.rownum=2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章