SQL Max(日期)没有group by

J.D*_*Doe 3 sql sql-server group-by max

说我有下表...

MemberID  ServDate
001       12-12-2015
001       12-13-2015
001       12-15-2015
002       11-30-2015
002       12-04-2015
Run Code Online (Sandbox Code Playgroud)

我想让它看起来像这样......

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
Run Code Online (Sandbox Code Playgroud)

有没有办法,我可以做到这一点,而不必使用GROUP BY或嵌套查询?(我正在处理一个非常大的数据库,而GROUP BY会大大减慢速度)

谢谢!

jod*_*ods 7

SELECT 
  MemberID, ServDate, 
  MAX(ServDate) OVER (PARTITION BY MemberID) AS LastServDate
FROM Table
Run Code Online (Sandbox Code Playgroud)

标准SQL,因此适用于大多数现代RDBMS(包括SQL Server和Oracle).

顺便编辑,如果你想了解更多:MSDN参考.为了OVER