2011-06-20 39 views
2

我需要獲取一天中登錄到我的網站的用戶的電子郵件地址列表。每天的獨特行數

該列表可能包含重複的電子郵件地址,但每天不會超過一個。

我需要獲取一週的這些數據。

我有一個包含每個成功的登錄記錄如下表..

[ID], [LOGIN_EMAIL], [LOGIN_TIME] 

下面的查詢得到我的一週整個數據集,但我需要把它過濾到每天一個電子郵件地址並獲得本週的整個名單?

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

這是相關的:http://stackoverflow.com/questions/192924/ sql-distinct-for-2-fields-in-a-database –

+0

您是否需要實際的電子郵件地址,或僅計算不同的電子郵件地址數? –

回答

0

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

0
SELECT DISTINCT LOGIN_EMAIL,LOGIN_TIME FROM USER_LOGINS WHERE LOGIN_TIME IS BETWEEN @STARTDATE AND @ENDDATE 

您可能需要chnge LOGIN_TIME到天格式

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) 
0
select DISTINCT CONVERT(VARCHAR(10), LOGIN_TIME, 102) as LogDate, login_email 
    from user_logins WHERE ...