需要来自sql查询的最大值

时间:2014-01-12 10:53:16

标签: sql sql-server-2008

我有一个视图,里面有很多列,包括ID,home,year,player,resource。我想拉出年份列中只有最大值的唯一主记录。

以下是来自视图和预期输出的数据。

数据

id  home  year     player   resource
---|-----|------|--------|---------
1  | 10  | 2009 | john   | 399 
2  | 11  | 2007 | juliet | 244
5  | 12  | 2009 | borat  | 555
3  | 10  | 2010 | john   | 300
4  | 11  | 2009 | juliet | 200
6  | 12  | 2008 | borat  | 500
7  | 13  | 2004 | borat  | 600
8  | 13  | 2009 | borat  | 700

预期输出(具有最长年份的唯一主页记录)

id  home  year     player   resource
---|-----|------|--------|---------
5  | 12  | 2009 | borat  | 555
3  | 10  | 2010 | john   | 300
4  | 11  | 2009 | juliet | 200
8  | 13  | 2009 | borat  | 700

请建议最好的方法。

1 个答案:

答案 0 :(得分:2)

试试这个:

WITH cte AS (
   SELECT home, MAX(year) AS year FROM Table1 GROUP BY home
)
SELECT * FROM Table1 a INNER JOIN cte ON a.home = cte.home AND a.year = cte.year

现场演示:http://sqlfiddle.com/#!3/678771/8/0