我们有一个历史表,其定义如下:
--ID (pk) -----------Object ID--------------Work ID--------date------
1 1111 AAAA 1/1/2010
2 1111 AAAA 1/2/2010
3 2222 BBBB 1/1/2010
4 3333 CCCC 1/1/2010
5 1111 DDDD 1/3/2010
Run Code Online (Sandbox Code Playgroud)
我们需要最新的(基于日期的而非基于 ID 的)行 PER Work ID。请注意,一个对象 ID 可以有多个工作 ID,我们需要每个工作 ID 的最新值。
我们需要什么作为我们的结果集:
ID (pk) -----------Object ID--------------Work ID--------date------
2 1111 AAAA 1/2/2010
3 2222 BBBB 1/1/2010
4 3333 CCCC 1/1/2010
5 1111 DDDD 1/3/2010
Run Code Online (Sandbox Code Playgroud)
想法/想法?
SELECT *
FROM (
SELECT h.*,
ROW_NUMBER() OVER (PARTITION BY workID ORDER BY date DESC) AS rn
FROM history
)
WHERE rn = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3929 次 |
| 最近记录: |