mysql实现查询分组查询最后一次的记录

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: mysql实现查询分组查询最后一次的记录

前言

又好久没有写博客了,为什么呢?因为最近没怎么写代码....说起来也惭愧。

今天在项目上遇到了个需求,是这样的:我们数据库中有一表检测记录表,该表中存储的是所有居民每次的检测记录,说白点就是,张三在今天检测了两次心电,那么该表中就会有两条记录,如果李四在今天检测了4次,那么表中就存的是4次的记录。如下所示:

在这里插入图片描述
像这样的检测记录表有9个,现在我们要实现,查询每个表中所有居民的最后一次检测记录。

sql语句

需求:查询所有居民的最后一次检测记录,包括居民信息,那么我们可以做出如下分析:

  1. 检测记录表需要和居民表进行关联查询,因为我们需要拿到居民的信息,在检测记录表中只有居民的id
  2. 在检测记录表中,需要按照居民分组查询,因为同一居民可能测多次,在表中存储的就是多次的记录。
  3. 需要按照检测时间降序排序检测记录表中的数据,因为我们需要知道最后一次的检测时间。

综上所述,我们就可以慢慢的整理出以下的sql,如下所示:

SELECT
    lm.name AS NAME,
    T1.heartratenum AS heartratenum,
    T1.ai_remark AS ai_remark,
    T1.dr_remark AS dr_remark,
    T1.create_time AS create_time,
    T1.user_id AS user_id,
    T1.member_id AS member_id,
    T1.sys_org_code AS sys_org_code,
    lm.birthday AS birthday,
    lm.sex AS sex,
    lm.phone AS phone,
    DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), lm.birthday)), '%Y')+0 AS age
FROM (SELECT A.* 
      FROM(SELECT A.*,
                  @row_number := IF(@member_id = A.member_id OR @member_id IS NULL,@row_number + 1,1) AS RN,
                  @member_id := A.member_id AS member_id1
           FROM lt_ecg A,(SELECT @row_number := 0) B,(SELECT @member_id := NULL) C
           ORDER BY A.member_id,A.measure_time DESC) A
   WHERE A.RN = 1) T1
INNER JOIN lt_member lm
   ON T1.member_id = lm.id

这样查出来如下所示:
在这里插入图片描述

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
SQL 关系型数据库 MySQL
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
16 2
|
6天前
|
关系型数据库 MySQL Shell
MySQL 查询
MySQL 查询
|
8天前
|
SQL 关系型数据库 MySQL
DQL语言之基础查询(mysql)
DQL语言之基础查询(mysql)
|
8天前
|
SQL 关系型数据库 MySQL
DQL语言之连接查询(mysql)
DQL语言之连接查询(mysql)
|
8天前
|
关系型数据库 MySQL
MySQL全局库表查询准确定位字段
information_schema.COLUMNS 详细信息查询
193 4
|
13天前
|
关系型数据库 MySQL
Mysql查询语句的执行顺序
Mysql查询语句的执行顺序
11 0
|
14天前
|
SQL 关系型数据库 MySQL
mysql多表查询、函数查询
mysql多表查询、函数查询
|
15天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
84 1
|
4天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
26 4