获取最新的5个唯一条目

时间:2011-10-16 01:40:40

标签: sql ms-access jet

我有一个Access数据库,我正在使用具有以下结构的JET进行交互:

ID  UsersID
1   1
2   2
3   2
4   3
5   1

我要做的是获取最新的唯一条目。例如:

ID  UsersID
5   1
4   3
3   2

但是,我在分组和订购方面遇到了麻烦。我试过了

SELECT DISTINCT [UsersID] FROM [Table] ORDER BY [ID] DESC
SELECT [UsersID] FROM [Table] GROUP BY [UsersID] ORDER BY [ID] DESC

但是,没有运气。注意:如果我从任一查询中取消ORDER BY [ID] DESC,它就会起作用,但显然排序不符合预期。

2 个答案:

答案 0 :(得分:2)

您可以使用简单的GROUP BY查询获取每个UserID的最大ID值。

SELECT UserID, Max(ID) AS MaxOfID
FROM [Table]
GROUP BY UserID;

但是我不确定我是否了解订单和最新的5项要求。如果最新的5表示上述查询中的5个最大ID值,那么请尝试这种方式......

SELECT TOP 5 UserID, Max(ID) AS MaxOfID
FROM [Table]
GROUP BY UserID
ORDER BY 2 DESC;

“表格”不是表格的最佳名称。希望您的真实世界情况使用不同的表名。 : - )

答案 1 :(得分:0)

SELECT TOP 5  ID, UserID FROM 
table 
where UserID in (SELECT DISTINCT UserID from table ORDER BY ID DESC)