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;
相关推荐
Zsh-cs2 分钟前
1-MySQL基础
mysql
斯普信专业组7 分钟前
Redis Cluster 集群化部署全流程指南:从源码编译到容器化
数据库·redis·缓存
计算机学姐21 分钟前
基于SpringBoot的智能家教服务平台【2026最新】
java·spring boot·后端·mysql·spring·java-ee·intellij-idea
任子菲阳32 分钟前
学JavaWeb第五天——MySQL
数据库·mysql
ZePingPingZe42 分钟前
MySQL查看事务与锁
数据库·mysql
TDengine (老段)1 小时前
从“被动养护”到“主动预警”,TDengine IDMP 让智慧桥梁靠数据“说话”
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
白日做梦Q1 小时前
【MySQL】9.吃透关键SQL语法:从正则表达式、窗口函数、条件函数到结果集合并的实战拆解
数据库·sql·mysql·正则表达式
likuolei1 小时前
正则表达式 - 元字符
数据库·mysql·正则表达式
侧耳倾听1111 小时前
mysql中的binlog-介绍
数据库·mysql
少云清1 小时前
【接口测试】4_PyMySQL模块 _操作数据库
服务器·网络·数据库