SQL уникальный запрос - нужна помощь - PullRequest
1 голос
/ 23 июня 2010

Нужна помощь с довольно простым SQL-запросом. Я пытаюсь выбрать количество уникальных записей, которые соответствуют определенному предложению where.

По сути, я ищу, чтобы найти количество уникальных пользователей, которые вошли в систему между датой х и у. Если пользователь вошел в систему более одного раза между этими датами, он должен будет считаться только один раз.

Данные выглядят примерно так:

id | user_id | lastLogin
1  | 100     | 2010-06-23 10:00:00
2  | 101     | 2010-06-23 10:05:00
3  | 100     | 2010-06-23 11:00:00 

Спасибо!

Ответы [ 4 ]

1 голос
/ 23 июня 2010

Вот еще один вариант

SELECT COUNT(user_id), user_id, MAX(lastLogin)
FROM login_table
WHERE lastlogin BETWEEN @start AND @end
GROUP BY user_id

Это даст вам счетчик логинов и дату последнего входа.

1 голос
/ 23 июня 2010

Попробуйте:

select count(distinct user_id)
from login_table
where lastlogin between @startdatetime and @enddatetime
0 голосов
/ 23 июня 2010

Вы можете сделать что-то вроде

SELECT COUNT(DISTINCT user_id) FROM table WHERE lastLogin BETWEEN ....
0 голосов
/ 23 июня 2010

Используйте оператор Distinct SQL.

Пример

select distinct user_id from UsersLoggedIn where lastLogin >= '2010-06-23 10:00:00' and lastLogin <= '2010-06-23 11:00:00'

Вы можете добавить это в счетчик, чтобы получить количество пользователей.

select count(*) from (select distinct user_id from UsersLoggedIn where lastLogin >= '2010-06-23 10:00:00' and lastLogin <= '2010-06-23 11:00:00') x
...