LMSouq
database Open

Retrieving the last record in each group - MySQL

VI
Vijay Dev
1 month ago
3 views
Problem Description
There is a table `messages` that contains data as shown below: Id Name Other_Columns ------------------------- 1 A A_data_1 2 A A_data_2 3 A A_data_3 4 B B_data_1 5 B B_data_2 6 C C_data_1 If I run a query `select * from messages group by name`, I will get the result as: 1 A A_data_1 4 B B_data_1 6 C C_data_1 What query will return the following result? 3 A A_data_3 5 B B_data_2 6 C C_data_1 That is, the last record in each group should be returned. At present, this is the query that I use: SELECT * FROM (SELECT * FROM messages ORDER BY id DESC) AS x GROUP BY name But this looks highly inefficient. Any other ways to achieve the same result?

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base