SQL最大(日期)无分组

问题描述 投票:3回答:1

我有以下表格...

MemberID  ServDate
001       12-12-2015
001       12-13-2015
001       12-15-2015
002       11-30-2015
002       12-04-2015

我想把它做成这样... ...

MemberID  ServDate     LastServDate
001       12-12-2015   12-15-2015
001       12-13-2015   12-15-2015
001       12-15-2015   12-15-2015
002       11-30-2015   12-04-2015
002       12-04-2015   12-04-2015

有什么方法可以做到这一点,而不必使用 GROUP BY 还是嵌套查询?(我正在处理一个非常大的数据库,GROUP BY会大大降低速度)

sql sql-server group-by max
1个回答
7
投票
SELECT 
  MemberID, ServDate, 
  MAX(ServDate) OVER (PARTITION BY MemberID) AS LastServDate
FROM Table

标准SQL,所以可以在大多数现代RDBMS中工作(包括SQL Server和Oracle)。

EDIT 顺便说一下,如果你想了解更多。MSDN ref. for OVER

© www.soinside.com 2019 - 2024. All rights reserved.