2013-12-02 2 views
0

У меня возникли проблемы с получением информации из моей базы данных. У меня есть таблица, содержащая два столбца, имя игрока и другое время входа в систему. Я хочу получить список игроков и количество раз, когда они регистрировались в течение периода времени. Тем не менее, пользователи могут входить в систему несколько раз в день, но я хочу, чтобы все логины в течение одного дня учитывались как один раз.Увеличьте время входа в базу данных sql

Чтобы перевести это в контекст, мне нужен список имени игрока и количество дней, в которые пользователи вошли в систему в период с 2013-11-18 по 2013-11-24.

Есть ли запрос, который может вернуть этот результат за один раз?

Я попытался использовать GROUP BY player_name, но это просто дает количество раз, когда игрок вошел в систему в целом (большие числа, потому что каждый игрок может войти в систему несколько раз в день).

Любая помощь будет оценена по достоинству.

+0

упомянуть _RDBMS_ –

+0

Я использую SQL Server 2008 – l3utterfly

ответ

1
SELECT player_name, COUNT(DISTINCT DATE(login_time)) 
FROM login_table 
GROUP BY player_name; 

Nail это, дайте мне знать, если он не работает :)

+0

Спасибо большое! Это сработало!!! – l3utterfly

0

Я не пробовал, но это должно сделать работу:

Select player_name, count(logged_in) 
From (Select player_name, Date(login_date) As logged_in From ... Group By player_name, Date(login_date)) as tmp 
Group By player_name 

EDIT: Производная таблица должна иметь псевдоним

+0

Я пробовал это, но он говорит мне недействительный синтаксис около GROUP (вторая группа по предложению). Я не знаю, почему ... – l3utterfly

+0

Попробуйте добавить псевдоним к производной таблице –

Смежные вопросы