说我有下表...
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会大大减慢速度)
谢谢!
答案 0 :(得分:7)
SELECT
MemberID, ServDate,
MAX(ServDate) OVER (PARTITION BY MemberID) AS LastServDate
FROM Table
标准SQL,因此适用于大多数现代RDBMS(包括SQL Server和Oracle)。
顺便提一下,编辑,如果您想了解更多信息:MSDN ref. for OVER