Rumah > pangkalan data > tutorial mysql > 关于Mysql如何将数据分组后取出时间最近的数据详解

关于Mysql如何将数据分组后取出时间最近的数据详解

黄舟
Lepaskan: 2019-02-22 16:29:20
asal
7612 orang telah melayarinya

如题,我在网上也找过相关解决方法,很多解答都是这么一句SQL语句:

select Id,Ac
count
Id,Mark,max(Create
Time
) as Latest from AccountMark as b group by AccountId
Salin selepas log masuk

相关mysql视频教程推荐:《mysql教程

使用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
Salin selepas log masuk

这样查出来的数据是对的

但是,我需要创建视图Mysql中视图里不允许出现查询子句。求大神些一条SQL语句,能实现既不出现子句,又能查出正确数据。谢谢!

解决方法

select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
and b.CreateTime<CreateTime )
Salin selepas log masuk

Atas ialah kandungan terperinci 关于Mysql如何将数据分组后取出时间最近的数据详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan