sql分组查询最大值

CREATE TABLE `Sys_Comment` (
  `CommentID` varchar(50) NOT NULL COMMENT '评论ID',
  `commentUserID` varchar(50) DEFAULT NULL COMMENT '评论人ID',
  `commentCompanyID` varchar(50) DEFAULT NULL COMMENT '评论公司ID',
  `commentContentID` varchar(50) DEFAULT NULL COMMENT '评论内容ID',
  `commentContentType` varchar(50) DEFAULT NULL COMMENT '评论内容类型',
  `comment` varchar(200) DEFAULT NULL COMMENT '评论',
  `paterID` varchar(50) DEFAULT NULL COMMENT '上级ID',
  `replyUserID` varchar(50) DEFAULT NULL COMMENT '被回复的用户的ID',
  `createTime` datetime DEFAULT NULL COMMENT '评论时间',
  PRIMARY KEY (`CommentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统:评论'

分组查询组内的最大值

 SELECT * FROM Sys_Comment a WHERE 1>(SELECT COUNT(*) FROM  Sys_Comment WHERE a.createTime<createTime AND a.commentContentID=commentContentID )
 
也可以写成
SELECT * FROM Sys_Comment a WHERE not exists(SELECT 1 FROM Sys_Comment WHERE a.createTime<createTime AND a.commentContentID=commentContentID )
 
也可以写成
SELECT a.* FROM `Sys_Comment` a  WHERE `createTime` =( SELECT MAX(`createTime`) FROM `Sys_Comment` WHERE `commentContentID`=a.`commentContentID` )
 
 将外循环的表中的值,在内表中循环比较,在 not exists 时,内循环有一个为true,则不显示外表里的数据。

猜你喜欢

转载自wsfly.iteye.com/blog/2218621
今日推荐