我有一个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
,它就会起作用,但显然排序不符合预期。
答案 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)