mysql 分组后取每组最新数据

这篇具有很好参考价值的文章主要介绍了mysql 分组后取每组最新数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 统计业务情况下,需要分组取最新,下面记录两种mysql写法

方式一:使用 MAX() 函数来实现该功能

SELECT
	* 
FROM
	d_switch_heart 
WHERE
	create_time IN ( SELECT MAX( create_time ) FROM d_switch_heart GROUP BY device_no ) 
ORDER BY
	device_no;

方式二:和方式一逻辑基本一致,只是将IN查询替换成了连接查询,实测百万级数据量相较于方式一提升50%,推荐使用此种方式文章来源地址https://www.toymoban.com/news/detail-690039.html

SELECT
	t1.* 
FROM
	d_switch_heart t1
INNER JOIN ( SELECT MAX( create_time ) AS create_time FROM d_switch_heart GROUP BY device_no ) t2 ON t1.create_time = t2.create_time;

到了这里,关于mysql 分组后取每组最新数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL大量脏数据,如何只保留最新的一条?

    因为系统的一个Bug,导致数据库表中出现重复数据,需要做的是删除重复数据且只保留最新的一条数据。 具体场景是这样的 当然有人会说上面的问题我们可以建一个 order_no + cost_id 的组合唯一索引,这样就算代码有bug但至少数据库表中不会有脏数据。 似乎这样就可以了,然

    2023年04月20日
    浏览(40)
  • ElasticSearch 分组统计,每组取最新数据

    ElasticSearch按任务id分组统计 查询方法: 任务ID一个,网站ID若干 求: 按网站ID分组,crawTotal最大,且时间为最新的一条数据。

    2024年02月10日
    浏览(37)
  • 【ES】分组后每组取第一条

    表格如下: 想要获得所有测站最新的一条数据,即先对Station分组,根据time进行排序(降序),取第一条。 参考文章: 分组后进行排序取第一条,然后再过滤 - Elastic 中文社区

    2024年02月15日
    浏览(51)
  • MySQL使用GROUP BY分组后,获取每组中时间记录最新的行对应的其他字段

    在编写MySQL数据库查询语句时,经常遇到使用GROUP BY分组后,需要获取每组中时间记录最新的行对应的其他字段这一情况。例如下表(t_score): id student course score examdate 1 小张 语文 89.0 2023-06-29 2 小张 数学 90.0 2023-06-29 3 小张 语文 91.0 2024-01-10 4 小张 数学 93.0 2024-01-10 5 小李 语

    2024年01月17日
    浏览(28)
  • Mysql 查询分组数据中每组某一数值最大的数据

    该表表名为customer,  park_id表示园区id,joined_at表示用户的加入时间,created_at表示用户的创建时间。 需求:查出每个园区中,最早加入园区的第一位用户 查出id为 1和9的两条数据 解题思路:       【提示】  此处使用 limit 是为了确保,group by分组的时候会按照子查询中输出的

    2024年02月08日
    浏览(36)
  • MySQL如何查询根据某一条件分组,再查询出每组数据中时间最早或最晚的数据

    最近遇到个需求,需要先根据A条件进行分组,然后查询出每组数据中时间最近的一条数据,立马就写出了sql语句 但是执行了一下,发现不对,子查询中 order by 貌似失效了,查出来的数据并不是要想要的时间最近的数据。 经过我的研究,发现,想要子查询中使用order by生效,

    2024年03月09日
    浏览(33)
  • 【MySQL】表中的一条数据在磁盘上是如何存放的?

    不同的存储引擎一般是为实现不同的特性来开发的,真实数据在不同存储引擎中的存放格式一般是不同的,甚至有的存储引擎(比如 MEMORY)都不用磁盘来存储数据,也就是对于使用 MEMORY 存储引擎的表来说,关闭服务器后表中的数据就消失了。 lnnoDB是MySQL 默认的存储引擎,也

    2024年02月13日
    浏览(29)
  • SQL分组后取topN

    求每门课程中成绩最好的人 使用窗口函数: 利用表链接 使用子查询 求每门课程成绩前两人 使用窗口函数: 使用自身左链接 结果: 这是对CID分组,按分数排名的表 上图中3中不同的排名方式,对应sql窗口函数的三种 row_number : 就是按1-2-3顺序排 rank:就是按 1-1-3 排列--这就是 

    2024年02月10日
    浏览(27)
  • 删除数组的一条数据

    1、纯数组 var arr = [ \\\'111\\\' , \\\'222\\\' , \\\'333\\\' , \\\' 444\\\' , \\\'555\\\' ] // 要删除项的下标值index ,arr为源数组 var arrDelIndex = function (index,arr) {     if (!arr || arr.length == 0) {         return \\\"\\\"     }     arr.splice(index,1)     return arr } // 要删除项的值item, arr为源数组 var arrDel = function (item, arr) {    

    2024年02月15日
    浏览(37)
  • ORACLE多列中取出数据最大的一条

    当查询出来的数据存在多条数据时,想按照一定条件排序取出其中一条数据。 row_number() over( partition by 分组字段 order by 排序字段 desc) --根据table_a中的pk_house,pk_customer进行分组,然后根据table_b.billdate进行排序,取出最大billdate的一条数据 select *   from (select  table_a.code,    

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包