我有一个视图,里面有很多列,包括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
请建议最好的方法。
答案 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