我有以下表格...
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会大大降低速度)
SELECT
MemberID, ServDate,
MAX(ServDate) OVER (PARTITION BY MemberID) AS LastServDate
FROM Table
标准SQL,所以可以在大多数现代RDBMS中工作(包括SQL Server和Oracle)。
EDIT 顺便说一下,如果你想了解更多。MSDN ref. for OVER