我有一个包含多个计算机名称和连接日期的表.这是一个例子.
ID Computer User Date
------------------------------------------------
1 O-1234 User1 2010-07-08
2 O-1234 User2 2010-08-24
3 O-1234 User2 2010-09-25
4 O-1555 User3 2010-08-24
5 O-1555 User3 2010-09-25
Run Code Online (Sandbox Code Playgroud)
我希望能够只为每台计算机选择最后2或3个连接.另外,我无法修改表格.有人有想法吗?
谢谢
编辑:这是一个MS Access mdb文件
编辑":由于RANK OVER()不能在MS Access中使用,是否可以使用临时表来完成工作?
SELECT *
FROM (
SELECT ID, Computer, User, Date,
RANK() OVER ( PARTITION BY Computer ORDER BY Date DESC) AS RowNumber
FROM YourTable)
WHERE RowNumber <= 3
Run Code Online (Sandbox Code Playgroud)
编辑:哦......这是Access.
我无法访问......呃...访问,但可以试试这个吗?
SELECT
logins.ID,
logins.Computer,
logins.User,
logins.Date,
COUNT(*)
FROM
YourTable logins INNER JOIN
YourTable Subsequentlogins ON
logins.Computer = Subsequentlogins.Computer
AND logins.Date <= Subsequentlogins.Date
GROUP BY
logins.ID,
logins.Computer,
logins.User,
logins.Date
HAVING COUNT(*) <= 3
Run Code Online (Sandbox Code Playgroud)