SELECT 5最新的SQL Server

jer*_*ere 6 sql t-sql sql-server sql-server-2012

我有一个包含这样记录的表格:

id        timestamp               dose             drug_id
1     2012-10-04 09:10:54          05                 2
1     2012-10-04 09:12:34          15                 2
1     2012-10-04 09:15:12          20                 2
1     2012-10-04 09:35:32          25                 2
1     2012-10-04 09:37:34          25                 2
1     2012-10-04 09:39:24          25                 2
1     2012-10-04 09:42:16          35                 2
1     2012-10-04 09:43:07          35                 2
Run Code Online (Sandbox Code Playgroud)

我想要做的是选择给定药物的最后5个使用剂量值,因此在这种情况下,查询应返回35,25,20,15,05.

我知道我可以使用TOP和ORDER BY来获取最新的5个条目,但在这种情况下它将返回重复项(35,35,25,25,25).

我应该用什么来获得我想要的输出?

Hot*_*ips 12

我无法访问我的服务器来测试它,但不应该

SELECT TOP 5 dose 
FROM table_id 
GROUP BY dose 
ORDER BY max(time) desc;
Run Code Online (Sandbox Code Playgroud)

工作?

编辑:在测试了http://sqlfiddle.com/#!6/610c4/2,请注意,我没有用过timestamp只是time.适当修复.