【发布时间】:2010-08-19 01:46:25
【问题描述】:
我有一个包含两列的简单表“登录”:
- 用户名 (nvarchar)
- 记录(日期时间)
真的很简单,只要记录有人登录我的网络应用程序时的用户名和日期时间。然而,有时人们在一分钟内登录几次......我想尝试运行一个查询来过滤这些结果,并且即使在同一分钟内有多个登录,它也只返回一行。
这是一个例子:
(我通过简单的选择得到的结果)
username logged
-------------------
kh0013 2010-08-16 21:29:21.020
tmt0006 2010-08-16 21:24:16.030
jrc0014 2010-08-16 21:17:37.187
jrc0014 2010-08-16 21:17:15.043
jrc0014 2010-08-16 21:17:00.593
jrm0017 2010-08-16 20:52:57.673
as0044 2010-08-16 20:45:51.210
snb0006 2010-08-16 20:33:29.873
weo0021 2010-08-16 19:54:57.093
如您所见,用户“jrc0014”在同一分钟内多次登录。如何编写查询,以便用户只登录一次,如下所示:
(期望的结果)
username logged
------------------
kh0013 2010-08-16 21:29:21.020
tmt0006 2010-08-16 21:24:16.030
jrc0014 2010-08-16 21:17:00.593
jrm0017 2010-08-16 20:52:57.673
as0044 2010-08-16 20:45:51.210
snb0006 2010-08-16 20:33:29.873
weo0021 2010-08-16 19:54:57.093
【问题讨论】:
-
您当前的选择语句是什么?为什么即使在一分钟之内也只需要一条记录? “SELECT username, MAX(logged) FROM Logins”会有用吗?
标签: sql sql-server tsql