【group by 之后去重,某个字段展示最后一次的值】sql怎么写

一、group by语句,巧用Max

实现效果:group by 之后去重,多条条件相同数据变为一条,判断多条数据的某些字段,只要有为1的就为1

SELECT 
  id,
  name, 
  CASE WHEN MAX(status1) = 1 THEN 1 ELSE 0 END AS status1,
  CASE WHEN MAX(status2) = 1 THEN 1 ELSE 0 END AS status2,
  CASE WHEN MAX(status3) = 1 THEN 1 ELSE 0 END AS status3
FROM 
  your_table
GROUP BY
  id, name;

二、巧用SUBSTRING_INDEX+GROUP_CONCAT

实现效果:还有某个字段,为字符串格式,取最近一条的那一条。

SELECT
  id,
  name,
  CASE WHEN MAX(status1) = 1 THEN 1 ELSE 0 END AS status1,
  CASE WHEN MAX(status2) = 1 THEN 1 ELSE 0 END AS status2,
  CASE WHEN MAX(status3) = 1 THEN 1 ELSE 0 END AS status3,
  SUBSTRING_INDEX(GROUP_CONCAT(field_str ORDER BY id DESC), ',', 1) AS field_str
FROM
  your_table
GROUP BY
  id, name;
  1. 在 GROUP_CONCAT 函数中,我们改为按 id 字段降序排列;
  2. 使用 SUBSTRING_INDEX 函数来提取第一个值,也就是 id 最大的那条记录对应的 field_str 值。

相关推荐

  1. list排序根据某个字段

    2024-07-22 16:44:03       38 阅读
  2. 判断数组中对象某个是否有相同

    2024-07-22 16:44:03       53 阅读
  3. [linux] 输出文本文件最后列并

    2024-07-22 16:44:03       54 阅读
  4. Python 字典组成数组怎么进行?

    2024-07-22 16:44:03       39 阅读
  5. Rust基础软件实践(

    2024-07-22 16:44:03       41 阅读
  6. Rust基础软件实践(二)

    2024-07-22 16:44:03       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 16:44:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 16:44:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 16:44:03       45 阅读
  4. Python语言-面向对象

    2024-07-22 16:44:03       55 阅读

热门阅读

  1. 0、springboot3 vue3开发平台-系统简介

    2024-07-22 16:44:03       17 阅读
  2. 将用户控件嵌入到 Excel 窗口中

    2024-07-22 16:44:03       15 阅读
  3. 数据仓库中的数据治理方法

    2024-07-22 16:44:03       16 阅读
  4. GFS分布式文件系统

    2024-07-22 16:44:03       15 阅读
  5. linux环境下使用logrotate切分nginx日志

    2024-07-22 16:44:03       18 阅读
  6. css中浮动的原理

    2024-07-22 16:44:03       14 阅读
  7. c# 索引器

    2024-07-22 16:44:03       16 阅读
  8. 初入C语言的主要难点

    2024-07-22 16:44:03       16 阅读
  9. PostgreSQL 慢 SQL 排查

    2024-07-22 16:44:03       18 阅读