MSSQL:只有GROUP BY中的最后一个条目(带有id)

cre*_*gox 6 sql sql-server group-by

跟随/复制computhomas的问题,但添加了一些曲折......

我在MSSQL2008中有下表

id | business_key | result | date
1 | 1 | 0 | 9
2 | 1 | 1 | 8
3 | 2 | 1 | 7
4 | 3 | n | 6
5 | 4 | 1 | 5
6 | 4 | 0 | 4
Run Code Online (Sandbox Code Playgroud)

现在我想基于business_key进行分组,返回带有最新日期的完整条目.所以我的预期结果是:

id | business_key | result | date
1 | 1 | 0 | 9
3 | 2 | 1 | 7
4 | 3 | n | 6
5 | 4 | 1 | 5
Run Code Online (Sandbox Code Playgroud)

我还打赌有一种方法可以实现这一点,我现在无法找到/看到/想到它.

编辑:对不起,我实际上是从我做过的原始问题中得到的其他东西.我觉得编辑这可能比接受解决方案和提出另一个问题更好.我最初的问题是我没有按ID过滤.

Luk*_*keH 15

SELECT t.*
FROM
(
    SELECT *, ROW_NUMBER() OVER
              (
                  PARTITION BY [business_key]
                  ORDER BY [date] DESC
              ) AS [RowNum]
    FROM yourTable
) AS t
WHERE t.[RowNum] = 1
Run Code Online (Sandbox Code Playgroud)