Количество Количество пользователей, вошедших в систему за каждые 10 минут - PullRequest
0 голосов
/ 25 марта 2019

Мне нужно подсчитать общее количество уникальных пользователей, вошедших в систему за каждые 10 минут.

У меня есть таблица с именем v_WebTMASessionLog, а столбцами являются sessionstart, sessionend, user_login_id.Полному пользователю нужно повторить счет, который продолжал использовать

Я ожидаю вывод, как показано ниже

Date and time          Number of users
3/25/19 8:00           5
3/25/19 8:10           5
3/25/19 8:20           8
3/25/19 8:30           9
3/25/19 8:40           8
3/25/19 8:50           7
3/25/19 9:00           2
3/25/19 9:10           1

1 Ответ

0 голосов
/ 25 марта 2019

В SQL Server вы можете сделать это следующим образом.

;WITH cte 
     AS (SELECT Dateadd(minute, ( Datediff(minute, CONVERT(CHAR(8), 
                                                   your_date_column, 
                                                   112),Dateadd(second,10 * 60 / 2,your_date_column)) /10 ) * 10, 
                           CONVERT(CHAR(8), Getdate(), 112)) AS your_date_column 
         FROM   [yourtable]) 
SELECT your_date_column, 
       Count(*) AS Users 
FROM   cte 
GROUP  BY your_date_column 
ORDER  BY your_date_column 

Примечание: Заменить [yourtable] именем таблицы и your_date_column именем столбца даты.

Edit:

возможно начать этот запрос с «Выбрать»

Без CTE вы можете сделать это следующим образом.

SELECT sessionstart, 
       Count(*) AS Users 
FROM   (SELECT Dateadd(minute, ( Datediff(minute, CONVERT(CHAR(8), sessionstart, 
                                                  112), 
                                        Dateadd(second, 
                                        10 * 60 / 2, sessionstart)) / 
                                                10 ) * 10, 
                      CONVERT(CHAR(8), Getdate(), 112)) AS 
               sessionstart 
        FROM   v_webtmasessionlog)t 
GROUP  BY sessionstart 
ORDER  BY sessionstart 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...