我有一个表格,格式如下:
id | Date A
----------------
1 | 05/02/12
1 | 05/05/12
1 | 05/08/12
3 | 05/01/12
3 | 05/05/12
3 | 05/06/12
现在,我想按ID获取每个ID和组的最新(最长)日期。 所以我的SQL输出应该是:
id | Date A
----------------
1 | 05/08/12
3 | 05/06/12
日期不一定是订单。 有人能给我一个如何做到这一点的暗示吗?
谢谢!
答案 0 :(得分:4)
select id, max([Date A]) as 'MaxDate'
from table
group by id
答案 1 :(得分:1)
我会使用窗口函数。
SELECT DISTINCT id, MAX([Date A]) OVER (PARTITION BY id) AS 'Date A'
FROM table
窗口函数的好处在于,您不需要在函数中不需要GROUP BY来获取输出结果。他们也很快。
以下是BOL:http://msdn.microsoft.com/en-us/library/ms189461.aspx 以下是关于窗口函数的更多信息:http://en.wikipedia.org/wiki/Select_(SQL)#Window_function