3

1日の間に自分のWebサイトにログインしたユーザーの電子メールアドレスのリストを取得する必要があります。

リストには重複する電子メールアドレスが含まれている可能性がありますが、1日に1つ以下です。

このデータを1週間取得する必要があります。

次のように、成功したログインごとのレコードを含むテーブルがあります。

[ID], [LOGIN_EMAIL], [LOGIN_TIME]

次のクエリは、その週のデータセット全体を取得しますが、1日あたり1つの電子メールアドレスにフィルターして、その週のリスト全体を取得する必要がありますか?

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

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

于 2011-06-20T08:43:07.660 に答える
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
   select DISTINCT CONVERT(VARCHAR(10), LOGIN_TIME, 102) as LogDate, login_email 
   from user_logins WHERE ...
于 2011-06-20T15:19:43.433 に答える