当前位置: 首页 > news >正文

Mysql 利用group by 分组排序

MySql的group by与oracle有所不同,查询得字段可以不用写聚合函数,查询结果取得是每一组的第一行记录。

利用上面的特点,可以利用mysql实现一种独特的排序;

首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。

最近工作用的表有这样一个需求,ip字段有重复,取最后时间更新的ip。

这是模拟表:

起初我用关联查询实现的:

SELECT t.id,t.ip
FROM app t
INNER JOIN
(SELECT ip,MAX(updatetime) m_updatetime
FROM app
GROUP BY
ip) t1
ON t1.ip=t.ip AND t.updatetime=t1.m_updatetime

但是这种方式,效率太低,查询太慢了。

现在可以利用mysql的group by特性实现

SELECT
t.id,
t.ip
FROM (SELECT *
FROM app
ORDER BY updateTime DESC) t
GROUP BY t.ip

先对更新时间降序排列,再取每组的第一条记录。

📢内容更新迁移说明

后续 DDD、微服务、分布式、组件源码全套体系化实战连载,统一更新至微信公众号:互联网后端架构栈

CSDN 不再发布完整新系列文章,公众号持续输出大厂落地案例、可直接复用的代码、线上踩坑复盘与架构方法论,欢迎前往关注,跟进完整连载内容。

http://www.jsqmd.com/news/1378471/

相关文章:

  • SpringBoot3+Vue3+MySQL 信息安全意识培训系统前后端分离源码
  • 终极音乐解锁指南:如何免费解锁10+加密音乐格式的完整方案
  • 企业AI落地实战:从概念到AI Agent应用的全链路解析
  • 河北保定GEO搜索推荐公司哪家好 评价高性价比优的热讯网络科技 - 优质新闻发布
  • Axure中文语言包:5分钟快速汉化Axure RP的完整指南
  • 当英雄联盟遇到智能管家:用League Akari重新定义你的游戏体验
  • HarmonyOS文本展开折叠功能开发指南
  • Montserrat字体完全指南:现代设计的免费开源几何无衬线字体终极解决方案
  • CSP-S 2024 超速检测 题解
  • 2026 年微信投票小程序推荐指南,多款主流平台对比测评
  • VSCode调试全攻略:launch.json与tasks.json配置详解与实战
  • AI Agent对话记忆管理:全量、摘要与向量策略的工业级选型指南
  • ViGEmBus虚拟游戏手柄驱动:终极Windows游戏控制器兼容性解决方案
  • 从零构建AI聊天助手:全栈开发实战与Cursor工具应用
  • 代码生成优化技术在嵌入式与AI部署中的应用
  • 从混乱项目标题到清晰理解:技术考古学实战指南
  • 四大主流消息队列深度对比:从架构设计到场景选型实战指南
  • 郑州靠谱犬舍怎么选?内行人认准这5个标准,轻松避开星期宠、串串宠 - 同城大型猫犬舍
  • QCMA:让你的PS Vita文件管理变得前所未有的简单
  • 河北保定干发帽厂家哪家靠谱?功能性面料选左右纺织品 - 优质新闻发布
  • K8s应用监控自动化:基于AI Agent Skill的智能接入实战
  • 如何通过本地化补丁技术重新定义游戏修改器体验:Wand-Enhancer深度技术解析
  • LangGraph实战:基于状态机与有向图构建多Agent智能编排系统
  • PyQt5安装全攻略:从原理到实战,彻底解决环境配置难题
  • 从RAG到上下文工程:大模型应用落地的核心技术解析与实践
  • 如何彻底解决Windows运行库问题:终极Visual C++运行库合集指南
  • LocalVocal:打造本地化实时字幕翻译的终极解决方案,让语音处理不再依赖云端
  • Ubuntu 22.04 生产环境部署Nacos:从单机模式到安全加固全指南
  • 本地操作型智能体深度测评:四类方案实战对比与选型指南
  • STM32 HAL工程模块化开发:Keil MDK文件夹创建与工程配置全攻略