Так что, если вы вычтете минуту, то вы получите правильный год и месяц для группы?
SELECT
YEAR(Dt) AS [Year],
MONTH(Dt) AS [Month],
SUM([Value]) AS [Total]
FROM (
SELECT
DATEADD(MINUTE, -1, [datetimestamp]) AS Dt,
[Value]
FROM [data]
) q
GROUP BY YEAR(Dt), MONTH(Dt)
ORDER BY [Year], [Month];
Или без подзапроса
SELECT
YEAR(DATEADD(MINUTE, -1, [datetimestamp])) AS [Year],
MONTH(DATEADD(MINUTE, -1, [datetimestamp])) AS [Month],
SUM([Value]) AS [Total]
FROM [data]
GROUP BY YEAR(DATEADD(MINUTE, -1, [datetimestamp])),
MONTH(DATEADD(MINUTE, -1, [datetimestamp]))
ORDER BY [Year], [Month];