Mysql 8.0 实现分组后获取组内极值算法 broup by

Mysql 8 中无法用低版本的 二次子查询实现,把数据集升序排列后,再外层做group By分组,取出第一条的方式。

因此引入了一个新函数,自动生成行序列,并且行序列按照指定字段分组后再根据自定字段进行排列原理如下

goupbyfield为分组字段,sortfield为组内需排序的字段

ROW_NUMBER() OVER(PARTITION BY goupbyfield ORDER BY sortfield ASC) rn

最后外层取rn=1的记录,就是最终分组好的结果值

sql 复制代码
SELECT t1.*
FROM (
    SELECT *, ROW_NUMBER() OVER(PARTITION BY groupbyfield ORDER BY sortfield DESC) rn 
    FROM your_table
) t1
WHERE t1.rn = 1;
相关推荐
fenglllle23 分钟前
MySQL explain format的差异
数据库·mysql
哈哈不让取名字1 小时前
用Pygame开发你的第一个小游戏
jvm·数据库·python
程序员敲代码吗1 小时前
Python异步编程入门:Asyncio库的使用
jvm·数据库·python
liux35281 小时前
MySQL主从复制技术全面解析:从基础原理到高级架构实践(八)
mysql
a程序小傲1 小时前
听说前端又死了?
开发语言·前端·mysql·算法·postgresql·深度优先
志凌海纳SmartX1 小时前
榫卯企业云平台:让企业自建云更简单
数据库
老邓计算机毕设1 小时前
SSM学生信息管理系统ow05a(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学生信息管理系统·ssm 框架·高校教育管理
小Mie不吃饭2 小时前
MySQL慢查询日志全解析:从配置到优化实践
mysql
Access开发易登软件2 小时前
数据处理中的两大基石:何时选择Excel,何时考虑Access
数据库·信息可视化·excel·vba·access