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;
相关推荐
阿成学长_Cain12 小时前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
一嘴一个橘子13 小时前
mysql 创建表
mysql
OceanBase数据库官方博客14 小时前
OceanBase AI 时代,数据库的变与不变(技术解析与实践)
数据库·人工智能·oceanbase
阿成学长_Cain15 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
ywl47081208715 小时前
Mysql 平衡二叉树、红黑树、B树、B+树区别以及应用场景(五)
数据库·b树·mysql
IvorySQL16 小时前
IvorySQL Agent 探索与实践
数据库·人工智能·postgresql·oracle·ivorysql
作陪16 小时前
小白也能看懂的 SQL 零基础教程:从关系模型到事务全解
mysql
SelectDB17 小时前
美团数十 PB 规模 Apache Doris 实践:从统一 OLAP 到 AI-Native 数据基座
大数据·数据库·性能优化
Database_Cool_17 小时前
阿里云RDS主从延迟解决方案_只读实例半同步复制最佳实践
数据库·人工智能
KaMeidebaby18 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法