GROUP BY 后获取每一组最新的一条记录

GROUP BY 后获取每一组最新的一条记录

最近有一种需求,一张订单可能有多个支付单,这就要求我们拿到每一张订单的最新支付单。具体思路如下:

[En]

Recently, there is a demand that there may be multiple payment orders for an order, which requires us to get the latest payment order for each order. The ideas are as follows:

最近有一种需求,一张订单可能有多个支付单,这就要求我们拿到每一张订单的最新支付单。具体思路如下:

[En]

Recently, there is a demand that there may be multiple payment orders for an order, which requires us to get the latest payment order for each order. The ideas are as follows:

写一个子查询,该子查询负责查询每个订单最新的支付单ID,然后和支付单表进行内关联查询。
情况一:数据库主键自增情况,取ID最大的那条记录

SELECT id,
       xx,
       xxx,
       xxxx,
       xxxxx
FROM txxx t1,
     (SELECT MAX( id ) AS id FROM txxx GROUP BY order_id ) AS t2
WHERE t1.id = t2.id

情况二:数据库主键是UUID,无法比较,利用创建时间字段,取时间最近那条记录

SELECT id,
       xx,
       xxx,
       xxxx,
       xxxxx,
       create_time
FROM txxx t1,
     (SELECT SUBSTRING_INDEX(GROUP_CONCAT(id order by create_time desc),',',1) AS id FROM txxx GROUP BY order_id ) AS t2
WHERE t1.id = t2.id

或者将子查询放进IN里

SELECT id,
       xx,
       xxx,
       xxxx,
       xxxxx
FROM txxx t1,
WHERE t1.id IN (SELECT MAX( id ) AS id FROM txxx GROUP BY order_id)

还有一种思路:先按照时间或ID倒序排序,然后再分组,这样取到的每一组都是最新的

SELECT id,
       xx,
       xxx,
       xxxx,
       xxxxx
FROM ( SELECT * FROM txxx ORDER BY id DESC ) t
GROUP BY
    order_id

参考链接:https://blog.csdn.net/qq_35069223/article/details/84343961
https://www.jb51.net/article/23969.htm

Original: https://www.cnblogs.com/lm66/p/15693728.html
Author: Liming_Code
Title: GROUP BY 后获取每一组最新的一条记录

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/507954/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Graphics2D类

    Java语言在Graphics类提供绘制各种基本的几何图形的基础上,扩展Graphics类提供一个Graphics2D类,它拥用更强大的二维图形处理能力,提供、坐标转换、颜色管理以…

    数据库 2023年6月11日
    093
  • 读取resources下的资源

    这里我通过一个普通的SpringBoot项目进行测试,当然其他项目也都是通用的。 将其中的Test修改为你的类名即可: java;gutter:true; import lombo…

    数据库 2023年6月14日
    082
  • Java 考试系统项目源码 springboot mybaits vue.js 支持手机端考试

    新增功能:培训学习模块, PDF电子课程、视频课程、直播课程(自己搭建直播流服务器) 人脸识别(考试时验证,有开关)、补考开关 组建试卷:创建试卷,题目、类型、总分、及格分数、时长…

    数据库 2023年6月6日
    083
  • 量子物理

    今天刷了YouTube的量子物理了解到了量子物理的发展史从微观到相对论从原子核到量子纠缠何其快哉 物理学:经典物理,量子物理。经典物理:万有引力量子物理:相对论 Original:…

    数据库 2023年6月11日
    083
  • Spring5完整版详解

    1、Spring 1.1简介 2002,首次退出来Spring框架的雏形:interface21框架 Spring框架即以interface21框架为基础,经过重新设计,并不断丰富…

    数据库 2023年6月16日
    085
  • 在windows上用docker desktop安装StoneDB

    自6月底开源以来,许多热心的社区用户都对StoneDB进行了编译和测试,也有一些用户询问StoneDB是否会支持Windows。虽然适配Windows版本的StoneDB尚未进入研…

    数据库 2023年5月24日
    0113
  • git拉项目出现的小问题

    问题描述 在IDEA中拉代码事报错。 点击查看报错信息 error: unable to read askpass response from ‘C:\Users\&#x9…

    数据库 2023年6月11日
    0108
  • element-ui el-table 悬停/选中 行样式,鼠标样式

    /* 用来设置当前页&am…

    数据库 2023年6月16日
    081
  • SQL语言基础

    SQL语言基础 SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新…

    数据库 2023年5月24日
    083
  • Docker下部署Spring Boot项目

    1.编写Docker File FROM openjdk:8-jdk-slim LABEL maintainer=ddzhan COPY target/*.jar /app.jar…

    数据库 2023年6月6日
    090
  • 最新漏洞:Spring Framework远程代码执行漏洞

    Spring Framework远程代码执行漏洞 发布时间 2022-03-31 漏洞等级 High CVE编号 CVE-2022-22965 影响范围:同时满足以下三个条件可确定…

    数据库 2023年6月6日
    094
  • mysql索引

    MySQL索引: MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 1.创建索引1.1单独创建索引 1.2修改表结构创建索引 1.3创…

    数据库 2023年6月11日
    091
  • EasyExcel导入导出excel工具类

    easyexcel依赖 com.alibaba easyexcel 1.1.2-beat1 工具类 package com.example.demo.files; import c…

    数据库 2023年6月11日
    0112
  • 【StoneDB技术解析】验证相关数据包是否需要解压缩

    在StoneDB中,数据包分为以下几类: 通过对数据包的划分,知识网格技术过滤掉不相关的数据包,读取相关的数据包和可疑的数据包。其中相关的数据包不需要解压缩,只读取元数据,不会发生…

    数据库 2023年5月24日
    082
  • linux学习之联网问题解决

    (centos7)linux隔日重启后发现无法联网解决方案 1.运行命令 ip addr 查看 ip地址 2.运行命令 vi /etc/sysconfig/network-scri…

    数据库 2023年6月16日
    093
  • 链表的知识总结

    链式结构内存不连续的,而是一个个串起来的,每个链接表的节点保存一个指向下一个节点的指针。 ⭐ 链式结构包含:node(节点)还有value(值),由于内存不连续的,那么对于数据的插…

    数据库 2023年6月16日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球