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

MySQL group by后取每个分组中最新一条数据

一、需求

MySQL group by后取每个分组中最新一条数据

二、实现

1)方案1:使用min()和max()方法

1、group by后取每个分组中最新一条数据

SELECT MAX(test_id) FROM test GROUP BY test_user_id;

2、group by后取每个分组中第一条插入的数据

SELECT MIN(test_id) FROM test GROUP BY test_user_id;

3、group by后,获取每个分组中大于一条数据的记录

SELECT count(*) as num FROM test GROUP BY test_user_id HAVING num>1;

4、group by后,获取每个分组中大于一条数据的记录的最新一条数据

SELECT MAX(test_id) FROM test GROUP BY test_user_id HAVING COUNT(*)>1;

5、group by后,获取每个分组中多条记录的test_id拼接串

SELECT GROUP_CONCAT(test_id) FROM test GROUP BY test_user_id;

6、group by后,获取每个分组中多条记录的test_id和test_ctime拼接串

通过group_concat()可以获取每个分组中多条记录的test_id拼接串,GROUP_CONCAT(test_id,"=",test_ctime)返回分组中每条记录对应的test_id和test_ctime,test_id和test_ctime通过“=”号拼接,方便查看每条记录对应的数据;

SELECT GROUP_CONCAT(test_id,"=",test_ctime),GROUP_CONCAT(test_id),GROUP_CONCAT(test_ctime) 
FROM test GROUP BY test_user_id;

 

***小结***

sql中存在group by,那么sql中的select 语句是对每个分组进行操作的,而不是对分组的结果集进行操作的;

比如select MAX(test_id) 返回每个分组中多条记录中最大的一条记录;

select group_concat(test_id) 返回每个分组中多条记录的test_id拼接串;

select 语句中包含聚合函数,将计算每组多条记录;汇总值

2)方案2:order by和group by配置使用

按照字段的排序order by后使用group by,方可获取每个分组中按照某字段排序后的第一条数据;

使用方案1更便捷准确哦。

相关文章:

  • JVM:(十六)垃圾回收器
  • 节点流和处理流详解
  • MySQL binlog 数据恢复
  • ArcGIS中添加在线地图(影像图、街道图等)
  • Opencv图像模板匹配
  • c语言进阶: 指针的进阶(上)
  • python使用PIL模块加载图像、通过resize函数改变图像的大小、使用save函数保存处理过的图像
  • Python点云显示:open3d快速上手
  • vue转electron项目以及使用fs报错:Module not found: Error: Can‘t resolve ‘fs‘ in解决办法
  • 【MATLAB教程案例14】基于ACO蚁群优化算法的函数极值计算matlab仿真及其他应用
  • 优化算法 - Adam算法
  • Open3D (C++) 点云变换
  • 黑白照片修复彩色软件免费有哪些?分享这三个实用的软件给你
  • CSS基础入门手册
  • python-- for循环的基础语法
  • css选择器
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Java读取Properties文件的六种方法
  • leetcode-27. Remove Element
  • Spring框架之我见(三)——IOC、AOP
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 关于Flux,Vuex,Redux的思考
  • 缓存与缓冲
  • 前端
  • 如何用vue打造一个移动端音乐播放器
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • Java数据解析之JSON
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # C++之functional库用法整理
  • (11)MSP430F5529 定时器B
  • (13):Silverlight 2 数据与通信之WebRequest
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • .Net 中Partitioner static与dynamic的性能对比
  • .net6使用Sejil可视化日志
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • ??javascript里的变量问题
  • @EnableWebMvc介绍和使用详细demo
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [Android Pro] AndroidX重构和映射
  • [Android 数据通信] android cmwap接入点
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [IOI2007 D1T1]Miners 矿工配餐
  • [Jquery] 实现鼠标移到某个对象,在旁边显示层。
  • [JS]变量
  • [LeeCode]—Wildcard Matching 通配符匹配问题
  • [linux]资料收纳
  • [Luogu 2816]宋荣子搭积木
  • [MySQL光速入门]003 留点作业...
  • [New Portal]Windows Azure Virtual Machine (3) 在VM上挂载磁盘