我需要获取一天内登录我网站的用户电子邮件地址列表。
该列表可能包含重复的电子邮件地址,但每天不得超过一个。
我需要获取这个数据一周。
我有一个表,其中包含每个成功登录的记录,如下所示。
[ID], [LOGIN_EMAIL], [LOGIN_TIME]
以下查询获取了本周的整个数据集,但是我需要每天将其过滤为一个电子邮件地址并获取本周的整个列表?
SELECT LOGIN_EMAIL
FROM USER_LOGINS
WHERE LOGIN_TIME IS BETWEEN @STARTDATE AND @ENDDATE
答案 0 :(得分: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)
答案 1 :(得分:0)
使用group by Day([LOGIN_TIME]), [LOGIN_EMAIL]
答案 2 :(得分:0)
SELECT DISTINCT LOGIN_EMAIL,LOGIN_TIME FROM USER_LOGINS WHERE LOGIN_TIME IS BETWEEN @STARTDATE AND @ENDDATE
您可能需要将登录时间更改为日期格式
答案 3 :(得分:0)
select DISTINCT CONVERT(VARCHAR(10), LOGIN_TIME, 102) as LogDate, login_email
from user_logins WHERE ...