MySQL 分组后取时间最新记录
程序员文章站
2022-03-07 15:25:18
...
如题,我在网上也找过相关解决方法,很多解答都是这么一句SQL语句:
select Id,AccountId,Mark,max(CreateTime) as Latest from AccountMark as b group by AccountId
使用Max函数。但是在我查出来的数据中似乎有些不对,如图,反白的那一条数据,Mark字段和CreateTime字段根本不对应啊!
这是怎么回事?使用Max函数后在分组这样靠谱吗?
还有一条语句:select *,COUNT(AccountId) as Num from
(select * from AccountMark order by CreateTime desc) `temp`
group by AccountId order by CreateTime desc
这样查出来的数据是对的
但是,我需要创建视图,Mysql中视图里不允许出现查询子句。求大神些一条SQL语句,能实现既不出现子句,又能查出正确数据。谢谢!
select Id,AccountId,Mark,max(CreateTime) as Latest from AccountMark as b group by AccountId
使用Max函数。但是在我查出来的数据中似乎有些不对,如图,反白的那一条数据,Mark字段和CreateTime字段根本不对应啊!
这是怎么回事?使用Max函数后在分组这样靠谱吗?
还有一条语句:select *,COUNT(AccountId) as Num from
(select * from AccountMark order by CreateTime desc) `temp`
group by AccountId order by CreateTime desc
这样查出来的数据是对的
但是,我需要创建视图,Mysql中视图里不允许出现查询子句。求大神些一条SQL语句,能实现既不出现子句,又能查出正确数据。谢谢!
解决方法:
select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
and b.CreateTime<CreateTime )
以上就是MySQL 分组后取时间最新记录的详细内容,更多请关注其它相关文章!
上一篇: python如何实现数字炸弹游戏
下一篇: Tomcat 发布博客网站
推荐阅读
-
MySQL去重保留最大的那条记录(取最新的记录)
-
Oracle数据库中分组取最小时间的那条记录的所有字段信息(方法)
-
sql取多条时间范围记录中最新的一条数据记录
-
分组后查找每组的前N条记录语句_MySQL
-
[转] mysql分组取每组前几条记录(排名)_MySQL
-
MySQL获取分组后的TOP 1和TOP N记录
-
MySQL获取分组后的TOP 1和TOP N记录
-
基于mysql实现group by取各分组最新一条数据
-
MySQL分组排序取前N条记录以及生成自动数字序列--groupby后limit外加rownumber_MySQL
-
MySQL分组排序取前N条记录以及生成自动数字序列的SQL_MySQL