在 SQL Server 中使用 2 个不同的列进行分组

Sim*_*dri 3 sql sql-server sql-server-2005 sql-server-2008

我有如下数据

ID  Stat    Date
1   1       2009-06-01
2   1       2009-06-20
3   1       2009-06-10
4   2       2009-06-10
Run Code Online (Sandbox Code Playgroud)

O/P 是这样的..

ID     Stat   CDate
2      1      2009-06-20
4      2      2009-06-10
Run Code Online (Sandbox Code Playgroud)

我已尝试使用以下查询但未成功,请提出建议。

Select Distinct stat,MAX(Cdate) dt,id  From testtable
Group By stat,id
Run Code Online (Sandbox Code Playgroud)

得到了解决方案..

Select f1.id,f1.stat,f1.cdate From testtableas F1 Join(Select stat,MAX(cdate) as dt from testtable group by stat) as F2 On f2.stat=F1.stat and f2.dt=f1.cdate

nik*_*trs 5

SELECT t1.id, t1.stat, t1.date
FROM testtable t1
JOIN (SELECT stat, MAX(date) date FROM testtable GROUP BY stat) t2 ON t1.stat = t2.stat AND t1.date = t2.date
GROUP BY stat
Run Code Online (Sandbox Code Playgroud)