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)

大家都在看

  • Mysql数据库体系

    Mysql数据库体系如下(手绘): 描述: 1.DBMS:database system management是数据库管理软件,平时我们使用的数据库的全称,是C/S架构(clien…

    数据库 2023年6月6日
    083
  • 为什么我选择MySQL Workbench・一

    一、官方 官方提供的工具必然有其优势。 MySQL Workbench有两个版本,社区版和商业版。社区版是免费的。 二、第一个选择 使用MySQL之前用的是SQL Server而微…

    数据库 2023年6月9日
    066
  • 索引的树结构

    二分查找 二叉树 二叉平衡树 B-TREE :二叉平衡树的基础上,使加载一次节点,可以加载更多路径数据,同时把查询范围缩减到更小 缺点:业务数据的大小可能远远超过了索引数据的大小,…

    数据库 2023年6月16日
    0126
  • 测试左移和测试右移,我们为何要“上下求索”?

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/7b9ad46d.html 你好,我是测试蔡坨坨。 今天,我们来聊一聊测试左移和测试右移。 传统测试流程…

    数据库 2023年6月11日
    071
  • MySQL学习笔记-day01

    SQL,全称 Structured Query Language, SQL用来和数据库打交道,完成和数据库的通信, SQL是一套标准。(90%以上的 SQL都是通用的)。 SQL:…

    数据库 2023年5月24日
    077
  • SMBMS(超市订单管理系统)项目从零开始搭建

    如果需要完整的系统可以加我qq:1842329236 一、搭建一个maven web项目 新建一个maven,并且使用模板 maven的详细创建,及配置请看这篇文章https://…

    数据库 2023年6月16日
    072
  • 在Ubuntu系统上安装StoneDB数据库

    今天我会进行StoneDB数据库在Ubuntu 22.04系统下的安装。 严格按照官方文档的步骤操作,看看安装能否成功。 [En] Strictly follow the step…

    数据库 2023年5月24日
    097
  • CentOS 7 Golang 安装

    可去官网下载tar包,这里提供一个1.16的安装地址: curl -#LO https://studygolang.com/dl/golang/go1.16.linux-amd64…

    数据库 2023年6月9日
    0111
  • kubectl 最新常用命令 –V1.24版本

    alias k=kubectl complete -F __start_kubectl k Kubectl 上下文和配置 kubectl config view # &#x…

    数据库 2023年6月14日
    066
  • 智慧 ~ 引子 ~ 三则故事

    年轻人的故事 从前,有位乡下青年,读了点书,嫌乡村的生活单调,决定要去城里闯世界。临走时,他向村中的村长请教,村长给了他三个字的忠告:”不要怕”。并讲好等他…

    数据库 2023年6月9日
    069
  • Tomcat端口占用

    进入命令行命令:netstat -ano作用:查看所有端口占用 命令:netstat -aon|findstr 端口号port作用:查看端口号port占用情况 命令:taskkil…

    数据库 2023年6月11日
    055
  • FTP文件上传

    一、配置FTP文件服务器 以Ubuntu为例 FTP两种模式简介 PORT(主动模式)第一步FTP客户端首先随机选择一个大于1024的端口p1,并通过此端口发送请求连接到FTP服务…

    数据库 2023年6月6日
    085
  • pycharm2022.2.1版本设置中文语言

    进入”File👉Sttings”界面 进入”Plugins(插件)”下,输入Chinese,找到”Chinese (Si…

    数据库 2023年6月14日
    089
  • MySQL 数据库

    内容概要 数据演变 数据存储发展 数据库类型 SQL与NoSQL的由来 下载安装MySQL MySQL文件目录 系统服务 密码相关 8.0版本的小问题 基本SQL语句 数据库的增删…

    数据库 2023年5月24日
    069
  • DASCTF 冰墩墩

    SimpleFlow 一下子就能发现传了一个含有flag.txt的压缩包,需要密码,字典简单跑一下就发现是 <span class=”ne-text”>PaSsZiPW…

    数据库 2023年6月11日
    065
  • 相同执行计划,为何有执行快慢的差别

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 前言 今天遇到一个很神奇的现象,…

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