3

我需要获取在一天内登录我的网站的用户电子邮件地址列表。

该列表可能包含重复的电子邮件地址,但每天不超过一个。

我需要获得这个数据一周。

我有一个表,其中包含每个成功登录的记录,如下所示..

[ID], [LOGIN_EMAIL], [LOGIN_TIME]

以下查询为我提供了本周的整个数据集,但我需要每天将其过滤到一个电子邮件地址并获取本周的整个列表?

SELECT LOGIN_EMAIL 
FROM USER_LOGINS 
WHERE LOGIN_TIME IS BETWEEN @STARTDATE AND @ENDDATE
4

4 回答 4

2
SELECT   LOGIN_EMAIL,
         DATEADD(DAY, DATEDIFF(DAY, 0, LOGIN_TIME), 0) AS LOGIN_DATE
FROM     USER_LOGINS 
WHERE    LOGIN_TIME BETWEEN @STARTDATE AND @ENDDATE
GROUP BY LOGIN_EMAIL, 
         DATEADD(DAY, DATEDIFF(DAY, 0, LOGIN_TIME), 0)
于 2011-06-20T13:58:00.533 回答
0
SELECT DISTINCT LOGIN_EMAIL,LOGIN_TIME FROM USER_LOGINS WHERE LOGIN_TIME IS BETWEEN @STARTDATE AND @ENDDATE

您可能需要将 LOGIN_TIME 更改为 Day 格式

于 2011-06-20T08:46:40.090 回答
0

利用group by Day([LOGIN_TIME]), [LOGIN_EMAIL]

于 2011-06-20T08:43:07.660 回答
0
   select DISTINCT CONVERT(VARCHAR(10), LOGIN_TIME, 102) as LogDate, login_email 
   from user_logins WHERE ...
于 2011-06-20T15:19:43.433 回答