Учитывая таблицу Event
, содержащую поле с именем EventTime
типа DateTime, и это значение будет содержать элементы даты и времени, мне нужно создать сводный запрос, который подсчитывает количество событий в каждом месяце.
Тип результирующего поля Group By также должен быть Date Time с элементом времени 0 и иметь значение 1-го дня месяца.
Это то, что у меня есть, но оно не очень элегантно, и я не уверен, что оно особенно эффективно.
SELECT COUNT(1) AS [CountOfEvents],
DATEADD(d, 1 - DAY(EventTime), DATEADD(dd, 0, DATEDIFF(dd, 0, EventTime))) AS [Month]
FROM [Event]
GROUP BY DATEADD(d, 1 - DAY(EventTime), DATEADD(dd, 0, DATEDIFF(dd, 0, EventTime)))
Лучшие предложения для большей эффективности или элегантности?