MySQL技巧:利用窗口函数高效去重,告别嵌套子查询

简介: MySQL技巧:利用窗口函数高效去重,告别嵌套子查询

MySQL技巧:利用窗口函数高效去重,告别嵌套子查询

日常开发中,数据去重是一个高频需求。很多同学第一时间想到 GROUP BYDISTINCT,但遇到“保留每组中最新一条记录”这类场景时,往往会写出多层嵌套子查询,性能差且可读性低。

其实,MySQL 8.0 引入的窗口函数可以优雅解决这个问题。

典型场景:保留每个用户的最新订单

假设有一张订单表 user_orders,包含 user_idorder_amountcreate_time。现在需要为每个用户保留最新的一条订单记录。

低效写法(传统子查询)

SELECT uo.* 
FROM user_orders uo
INNER JOIN (
    SELECT user_id, MAX(create_time) AS max_time
    FROM user_orders
    GROUP BY user_id
) t ON uo.user_id = t.user_id AND uo.create_time = t.max_time;

高效写法(窗口函数)

WITH ranked AS (
    SELECT *,
           ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY create_time DESC) AS rn
    FROM user_orders
)
SELECT * FROM ranked WHERE rn = 1;

优点解析

  • 简洁清晰:一条 ROW_NUMBER() 直接表达“分组排序取第一”的意图。
  • 性能更好:窗口函数只需扫描一次表,而传统自连接或子查询往往需要多次扫描。
  • 灵活扩展:将 rn = 1 改为 rn <= 3 即可获取每个用户最新的3条订单,无需改写复杂逻辑。

小提示

如果 MySQL 版本低于 8.0,可以使用用户变量模拟窗口函数,但升级到 8.0 以上才是长久之计。窗口函数还能轻松实现累计和、移动平均等高级分析,值得深入学习。

下次遇到“每组取Top N”的需求,试试窗口函数,让你的SQL更优雅。

相关文章
|
8天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11016 87
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
7天前
|
人工智能 IDE API
2026年国内 Codex 安装教程和使用教程:GPT-5.4 完整指南
Codex已进化为AI编程智能体,不仅能补全代码,更能理解项目、自动重构、执行任务。本文详解国内安装、GPT-5.4接入、cc-switch中转配置及实战开发流程,助你从零掌握“描述需求→AI实现”的新一代工程范式。(239字)
4485 129
|
4天前
|
人工智能 自然语言处理 供应链
【最新】阿里云ClawHub Skill扫描:3万个AI Agent技能中的安全度量
阿里云扫描3万+AI Skill,发现AI检测引擎可识别80%+威胁,远高于传统引擎。
1304 3
|
14天前
|
人工智能 JavaScript API
解放双手!OpenClaw Agent Browser全攻略(阿里云+本地部署+免费API+网页自动化场景落地)
“让AI聊聊天、写代码不难,难的是让它自己打开网页、填表单、查数据”——2026年,无数OpenClaw用户被这个痛点困扰。参考文章直击核心:当AI只能“纸上谈兵”,无法实际操控浏览器,就永远成不了真正的“数字员工”。而Agent Browser技能的出现,彻底打破了这一壁垒——它给OpenClaw装上“上网的手和眼睛”,让AI能像真人一样打开网页、点击按钮、填写表单、提取数据,24小时不间断完成网页自动化任务。
2808 6
|
6天前
|
人工智能 并行计算 Linux
本地私有化AI助手搭建指南:Ollama+Qwen3.5-27B+OpenClaw阿里云/本地部署流程
本文提供的全流程方案,从Ollama安装、Qwen3.5-27B部署,到OpenClaw全平台安装与模型对接,再到RTX 4090专属优化,覆盖了搭建过程的每一个关键环节,所有代码命令可直接复制执行。使用过程中,建议优先使用本地模型保障隐私,按需切换云端模型补充功能,同时注重显卡温度与显存占用监控,确保系统稳定运行。
1624 5

热门文章

最新文章