说我有下表...
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).
顺便编辑,如果你想了解更多:MSDN参考.为了OVER