文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

用mysql实现按条件分组并且每组去时间最大的一条

2023-08-17 05:33

关注

实现逻辑:先查出每组最大的,再和结果关联

可以考虑使用子查询或者连接查询实现。以下是两种语法:

子查询:

SELECT *FROM 表名WHERE (组内条件, 时间) IN (    SELECT 组内条件, MAX(时间)    FROM 表名    GROUP BY 组内条件);

其中,组内条件是按照哪个字段进行分组的条件,可以是一个或多个字段。时间是需求中要筛选的时间字段,假设为time字段。这个查询会返回满足组内条件下时间最大的记录。

连接查询:

SELECT t1.*FROM 表名 t1INNER JOIN (    SELECT 组内条件, MAX(时间) as max_time    FROM 表名    GROUP BY 组内条件) t2 ON t1.组内条件 = t2.组内条件 AND t1.时间 = t2.max_time;

其中,组内条件和时间的含义同上。这个查询会先用子查询找到每组对应的最大时间,再用连接查询将原表中的记录与这些最大时间进行匹配并返回相应的记录。

其他

SELECT * FROM (SELECT CONCAT(b.check_batch_code,r.create_time)c,b.check_batch_code,b.`status`,r.* FROM check_base b LEFT JOIN check_record r on b.check_base_id = r.check_base_id)tRIGHT JOIN (SELECT CONCAT(b.check_batch_code,MAX(r.create_time))cm FROM check_base b LEFT JOIN check_record r on b.check_base_id = r.check_base_id GROUP BY b.check_batch_code,r.check_type)dON  t.c = d.cm WHERE  `status` = 2 and check_type = 2 

来源地址:https://blog.csdn.net/qq_45103475/article/details/128811542

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯