Home  >  Article  >  Database  >  MySQL gets the latest record after grouping

MySQL gets the latest record after grouping

大家讲道理
大家讲道理Original
2017-05-28 11:18:402270browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn