Like the title, I have also looked for related solutions on the Internet. Many of the answers are like this SQL statement:
select Id,AccountId,Mark,max(CreateTime) as Latest from AccountMark as b group by AccountId
Use Maxfunction. But there seems to be something wrong in the data I found. As shown in the picture, in the highlighted data, the Mark field and the CreateTime field do not correspond at all!
How is this going? Is it reliable to group after using the Max function?
There is another statement: select *,COUNT(AccountId) as Num from
(select * from AccountMark order by CreateTime desc) `temp`
group by AccountId order by CreateTime desc
The data found in this way is correct
However, I need to create a
view, and queries are not allowed in the view in Mysql clause. Can anyone please provide me with a SQL statement that can detect the correct data without any clauses appearing? Thanks!
Solution:
select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId and b.CreateTime
The above is the detailed content of MySQL gets the latest record after grouping. For more information, please follow other related articles on the PHP Chinese website!