基于mysql实现group by取各分组最新一条数据

 更新时间:2020年09月18日 09:35:03   作者:八英里  
这篇文章主要介绍了基于mysql实现group by取各分组最新一条数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前言:

group by函数后取到的是分组中的第一条数据,但是我们有时候需要取出各分组的最新一条,该怎么实现呢?

本文提供两种实现方式。

一、准备数据

http://note.youdao.com/noteshare?id=dba748092a619be0a8f160ccf6e25a5f&sub=FD4C1C7823CA440DB360FEA3B4A905CD

二、三种实现方式

1)先order by之后再分组:

SELECT * FROM (SELECT * from tb_dept ORDER BY id descLIMIT 10000) a GROUP BY parent_id;

不加LIMIT可能会无效,由于mysql的版本问题。但是总觉得这种写法不太正经,因为如果数据量大于Limit 的值后,结果就不准确了。所以就有了第二种写法。

2)利用max() 函数:

SELECT * FROM tb_dept td,(SELECT max(id) id FROM tb_dept GROUP BY parent_id) md where td.id = md.id;

3)利用 where 字段名称 in (...) 函数:

SELECT * FROM tb_dept WHERE id IN (SELECT MAX(id) FROM tb_dept GROUP BY parent_id);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • MySQL中LAG()函数和LEAD()函数的使用

    MySQL中LAG()函数和LEAD()函数的使用

    这篇文章主要介绍了MySQL中LAG()函数和LEAD()函数的使用,包括窗口函数的基本用法,LAG()和LEAD()函数介绍,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • delete in子查询不走索引问题分析

    delete in子查询不走索引问题分析

    这篇文章主要为大家介绍了delete in子查询不走索引的问题分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • MySQL索引失效之隐式转换的问题

    MySQL索引失效之隐式转换的问题

    本文主要介绍了MySQL索引失效之隐式转换的问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • MySQL函数Locate的使用详解

    MySQL函数Locate的使用详解

    本文主要介绍了MySQL函数Locate的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • mysql备份与恢复详解

    mysql备份与恢复详解

    本篇文章是对mysql的备份与恢复进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • sysbench的安装与使用 分享

    sysbench的安装与使用 分享

    sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL
    2013-09-09
  • 使用FriendFeed来提升MySQL性能的方法

    使用FriendFeed来提升MySQL性能的方法

    这篇文章主要介绍了使用FriendFeed来提升MySQL性能的方法,用其来存储无模式的数据从而能够维护索引,需要的朋友可以参考下
    2015-06-06
  • 千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记

    千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记

    谈到自己在解决一个拥有 60 万条记录的 MySQL 数据库访问时,导致 MySQL CPU 占用 100% 的经过。在解决问题完成优化(optimize)之后,我发现 Discuz 论坛也存在这个问题,当时稍微提了一下
    2010-12-12
  • centos7环境下创建mysql5.6多实例的方法详解

    centos7环境下创建mysql5.6多实例的方法详解

    这篇文章主要介绍了centos7环境下创建mysql5.6多实例的方法,详细分析了centos7创建mysql5.6多实例的具体步骤、实现方法与操作注意事项,需要的朋友可以参考下
    2020-02-02
  • MySQL GTID主备不一致的修复方案

    MySQL GTID主备不一致的修复方案

    这篇文章主要介绍了MySQL GTID主备不一致的修复方案,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-04-04

最新评论