Создать гистограмму на основе времени создания записи - PullRequest
0 голосов
/ 23 мая 2019

Моя система использует SQL Server 2014. У нее есть таблица с именем Report.Я хотел бы знать, в какое время было создано большинство отчетов.В таблице есть поле crateTime, которое записывает время создания записи.У меня есть следующее утверждение

select dateadd(minute, datediff(minute, 0, r.createTime), 0), count(*) from Report r
group by dateadd(minute, datediff(minute, 0, r.createTime), 0)

Это утверждение может производить подсчет записей в каждую минуту.Тем не менее, я хочу получить счет на основе пяти минут.Как я могу это сделать?

1 Ответ

2 голосов
/ 23 мая 2019

Попробуйте:

SELECT DATEADD(minute, DATEDIFF(minute, '', r.createTime)/5*5, ''), count(*)
FROM Report r
GROUP BY DATEADD(minute, DATEDIFF(minute, '', r.createTime)/5*5, ''), 0);

Обратите внимание, что значение даты и времени по умолчанию используется, когда вместо нуля указана пустая строка, поэтому этот метод будет работать и с другими временными типами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...