您好,欢迎来到刀刀网。
搜索
您的当前位置:首页【group by 之后去重,某个字段展示最后一次的值】sql怎么写

【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;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务