Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите пожалуйста написать запрос  [new]
Anni06
Member

Откуда:
Сообщений: 9
Существует таблица Пользователи, в которой хранятся ID пользователей и дата каждого захода в приложение.
Необходимо написать запрос вычисляющий для каждой строки, сколько дней подряд к этому моменту пользователь заходил в приложение (первый вход считаем как 1 день подряд).
Написала вот это

USE Useractivity
SELECT UserActivity.Date, UserActivity.UserId, COUNT(Date) AS DaysInRow
FROM UserActivity
GROUP BY UserActivity.UserId, UserActivity.Date
ORDER BY COUNT(Date)DESC

а как осуществить сам подсчет не понимаю(((
Вроде как надо бы цикл составить, но как это сделать в запросе?
5 фев 15, 14:29    [17222751]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста написать запрос  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SELECT  UserActivity.UserId, COUNT(Date) AS DaysInRow
FROM UserActivity 
GROUP BY UserActivity.UserId

?
5 фев 15, 14:34    [17222794]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста написать запрос  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Или надо точно указывать дату или писать нарастающий итог.
5 фев 15, 14:36    [17222814]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста написать запрос  [new]
Anni06
Member

Откуда:
Сообщений: 9
Владислав Колосов, должно получится как то так:

Date UserId DaysInRow
2014-10-01 2 1
2014-10-01 1 1
2014-10-02 1 2
2014-10-02 3 1
2014-10-03 1 3
2014-10-05 1 1
5 фев 15, 14:42    [17222870]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста написать запрос  [new]
olegdev
Member

Откуда:
Сообщений: 7
Попробуйте использовать ранжирующие оконные функции.
5 фев 15, 16:45    [17223926]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить