同一个表分组取最大值整条数据

CREATE TABLE `info_main_gbxx` (
  `ID` varchar(100) NOT NULL COMMENT 'id',
  `TBDW` varchar(100) DEFAULT NULL COMMENT '填报单位',
  `A01001` varchar(100) DEFAULT NULL COMMENT '姓名',
  `A01004` varchar(100) DEFAULT NULL COMMENT '性别',
  `A01084` varchar(255) DEFAULT NULL COMMENT '身份证号',
  `A02001A` varchar(500) DEFAULT NULL COMMENT '归口单位(原:单位)',
  `GKGBC` varchar(100) DEFAULT NULL COMMENT '归口干部处',
  `A02016A` varchar(500) DEFAULT NULL COMMENT '单位及职务(原:职务)',
  `A54001` varchar(100) DEFAULT NULL COMMENT '报告日期',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

//取同一个人最新的报告日志数据
SELECT a.* FROM info_main_gbxx a 
INNER JOIN (SELECT a01084,max(a54001) a54001 
from info_main_gbxx GROUP BY A01084) b 
ON a.A01084=b.a01084 and a.A54001=b.a54001
GROUP BY a.A01084 
//根据单位查询数据
HAVING a.A02001A='单位名';

猜你喜欢

转载自blog.csdn.net/weixin_40010498/article/details/82906367