Possible Duplicate:
SQL Server: Only last entry in GROUP BY
I have a table like this:
id| name  | attende开发者_JS百科nce
1 | Naveed| 1
2 | Naveed| 1
3 | Adil  | 1
4 | Adil  | 1
I use following query:
SELECT * FROM `test` WHERE `attendence`=1 GROUP BY name
The result with above query:
id| name   | attendence
3 | Adil   | 1
1 | Naveed | 1
Question:
Above result group rows by name but show first row from each group. I want to select last row(by id) from each group.
For example:
id| name   | attendence
2 | Naveed | 1
4 | Adil   | 1
How to write query for above result.
Thanks
SELECT a.* 
FROM test a 
WHERE a.attendence = 1 
AND NOT EXISTS (select 1 from test where name = a.name and id > a.id and attendence = 1)
GROUP BY name 
Might not even need the group by anymore.
SELECT MAX("id"), "name" FROM "test" WHERE "attendence" = 1 GROUP BY "name"
SELECT Name, Max(ID) FROM table WHERE attendance = 1 GROUP BY Name
Use the following query:
SELECT * FROM `test` WHERE `attendence`=1 GROUP BY name ORDER BY `id` DESC LIMIT 1
That will only select the row that meets the criteria with the highest id.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论