SQL 查找重复记录的最大值

SQL to find highest value for repeated records

我有这样的场景。

ID| NAME|   EMAIL
---|------|--------------|---
11| ROCKY|  ROCKY@XYZ.COM
99| JAMES|  JAMES@XYZ.COM
88| ROCKY|  ROCKY@XYZ.COM
77| JAMES|  JAMES@XYZ.COM

我的预期结果是

ID   NAME   EMAIL
99   ROCKY  ROCKY@XYZ.COM
88   JAMES  JAMES@XYZ.COM

请帮忙

我认为您的预期结果有错字。但我认为你想要的是一个简单的 group by:

select name, email, max(id)
from yourtable
group by name, email

由于您没有提供 SQL 声明,我只能猜测您要做什么。

你尝试了吗?

ORDER BY ID desc

假设您使用的是 MSSQL,并且您的预期结果与您发布的结果完全相反,您将需要使用 GROUP BY 子句:

SELECT MAX(ID), NAME, EMAIL FROM YourTable GROUP BY NAME, EMAIL

Codeulike 将是我的首选 +1

但另一个选项正在使用 WITH TIES 子句

Declare @YourTable table (ID int,NAME varchar(50),EMAIL varchar(50))
Insert Into @YourTable values
(11,'ROCKY','ROCKY@XYZ.COM'),
(99,'JAMES','JAMES@XYZ.COM'),
(88,'ROCKY','ROCKY@XYZ.COM'),
(77,'JAMES','JAMES@XYZ.COM')

Select Top 1 with Ties *
 From  @YourTable
 Order By Row_Number() over (Partition By Name,EMail Order by ID Desc)

Returns

ID  NAME    EMAIL
99  JAMES   JAMES@XYZ.COM
88  ROCKY   ROCKY@XYZ.COM