0
点赞
收藏
分享

微信扫一扫

MyBatis(MySQL)分组后组内排序

夏侯居坤叶叔尘 2022-01-24 阅读 156

MySQL根据字段进行分组后组内排序

要求:
根据status进行划分组,再从组内选择一个字段进行排序
这里我们使用更新时间update_time 进行降序排序

  • 分组操作:
    根据status进行分组 通过over(partition by status)进行分组操作
  • 组内排序:
    根据update_time进行组内排序 ,在分组操作的基础上添加排序,sql语句为:over(partition by status order by update_time desc
    desc为降序,asc为升序,可以根据需求自行选择。
    完整SQL语句如下:
select a.id as 功能编号, a.function_name as 功能名称,
		a.content as 功能详细,a.create_time as 创建时间,
		a.update_time as 更新时间,a.status as 启用状态,a.del_flag as 删除标识,a.remark as 备注 
		from (select *,row_number() over(partition by status order by update_time desc)
        from 数据库名称
        where del_flag="0") aa //筛选掉已被删除的数据(0代表未删除,2代表已删除)

查询结果:
在这里插入图片描述
核心语句就是row_number() over(partition by status order by update_time desc)该sql语句进行分组再组内排序操作。

举报

相关推荐

0 条评论