Как мне написать SQL, который будет возвращать результаты, показывающие количество строк, которые произошли в каждом часовом периоде? - PullRequest
2 голосов
/ 30 января 2009

Мне нужно создать отчет SQL, показывающий количество раз, когда в течение каждого часового периода происходило конкретное событие. В моей таблице есть столбец даты / времени, в котором указано время, когда произошло событие.

Как подсчитать количество строк, попадающих в каждый почасовой период в течение дня?

Так что мне нужно увидеть вывод как это ...

10: 00 - 11:00 12 раз

11,00 - 12:00 53 раза

12: 00 - 13:00 5 раз и т. Д.

Я предполагаю, что это будет Group By, но как вы группируете каждый час? Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 30 января 2009
SELECT DATEPART(hh, DateTimeColumn), COUNT(*)
FROM
    TableName
GROUP BY
    DATEPART(hh, DateTimeColumn)
ORDER BY
    DATEPART(hh, DateTimeColumn)
1 голос
/ 30 января 2009

Решение Seans будет работать только с данными за 24 часа, так как datepart dd возвращает только 0-23.

Если вам нужно обработать больше, вам нужно будет добавить и день.

Что-то вроде:

SELECT CAST(DateTimeColumn AS INT) [day],DATEPART(hh, DateTimeColumn), COUNT(*)
FROM
    TableName
GROUP BY
    CAST(DateTimeColumn AS INT),
    DATEPART(hh, DateTimeColumn)
ORDER BY
    CAST(DateTimeColumn AS INT),
    DATEPART(hh, DateTimeColumn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...