ID Name Book
1 Aaron HTML
2 Charles DESIGN
3 Mark SQL
4 Charles JAVA
5 Charles C++
6 Mark C#
我想SELECT
每Name
最大ID
行,其结果是这样的:提前
ID Name Book
1 Aaron HTML
5 Charles C++
6 Mark C#
感谢。
ID Name Book
1 Aaron HTML
2 Charles DESIGN
3 Mark SQL
4 Charles JAVA
5 Charles C++
6 Mark C#
我想SELECT
每Name
最大ID
行,其结果是这样的:提前
ID Name Book
1 Aaron HTML
5 Charles C++
6 Mark C#
感谢。
快速和肮脏的,但应该工作:
select * from [mytable] where id in
(select max(id) as id from mytable group by name)
可以使用ROW_NUMBER()
功能与CTE
:
;WITH CTE AS
(
SELECT ID, Name, Book, ROW_NUMBER() OVER (PARTITION BY Name ORDER BY ID DESC) RN
FROM yourTable
)
SELECT ID, Name, Book
FROM CTE
WHERE RN = 1
在我的其他问题尝试了这一点,它的工作原理,谢谢 – MarckxMan
通过_Last row_,你的意思是你想要的每个'Name'具有最大'ID'的行? –
是的。具有最高ID的行每个名称 – MarckxMan