【发布时间】:2013-03-29 19:41:17
【问题描述】:
我正在尝试从我的数据库中的表中选择不同的(上次更新的)行。我正在尝试获取每个“子部分”的最后更新行。但是我找不到实现这一目标的方法。
表格如下:
ID | Name |LastUpdated | Section | Sub |
1 | Name1 | 2013-04-07 16:38:18.837 | 1 | 1 |
2 | Name2 | 2013-04-07 15:38:18.837 | 1 | 2 |
3 | Name3 | 2013-04-07 12:38:18.837 | 1 | 1 |
4 | Name4 | 2013-04-07 13:38:18.837 | 1 | 3 |
5 | Name5 | 2013-04-07 17:38:18.837 | 1 | 3 |
我想让我的 SQL 语句做的是返回行:
1、2 和 5。
它们对于 Sub 是不同的,并且是最新的。
我试过了:
SELECT DISTINCT Sub, LastUpdated, Name
FROM TABLE
WHERE LastUpdated = (SELECT MAX(LastUpdated) FROM TABLE WHERE Section = 1)
仅返回最近更新行的不同行。这是有道理的。
我已经用谷歌搜索了我正在尝试的内容,并在此处查看了相关帖子。但是没有设法找到一个真正回答我正在尝试的问题。
【问题讨论】:
标签: sql sql-server-2008 select greatest-n-per-group