У нас есть таблица со значениями, каждые пять минут в таблице появляется новая строка с числовым значением и временем, как рассчитать среднее значение за первые 45 минут каждого часа.
У меня есть запрос, который вычисляет среднее значение за каждый час
SELECT hh=CONVERT(CHAR(13),[DateMeasure],126),
[Fe_Ka]=AVG([Fe_ka]) FROM Results1
GROUP BY CONVERT(CHAR(13),[DateMeasure],126)
ORDER BY hh;
но я понятия не имею, как сделать выделение 45 минут в начале каждого часа
Исходная таблица включает три столбца: дата измерения (дата-время), идентификатор измерения (целое число), значение (число с плавающей запятой). Каждые пять минут добавляется новая строка. Нужна таблица со временем по часам и средним значением за первые 45 минут этого часа
@Larnu я предоставил скриншоты
без скриншота пожалуйста. Опубликовать как текст
WHERE DATEPART(minute, DateMeasure) BETWEEN 0 AND 44
можно? Также лучший способ сократить до часа DATEADD(hour, DATEDIFF(hour, '20000101', DateMeasure), DateMeasure)
… См. центр помощи для получения дополнительной информации о как задавать хорошие вопросы и многих других полезных темах.
@Белка, я делаю это!
Используйте DATEPART()
, чтобы получить выражение минуты и CASE
и проверить, находится ли время в пределах ЧЧ: 45 минут.
select TheDate = convert(date, DateMeasure),
TheHour = datepart(hour, DateMeasure),
TheAvg = avg(case when datepart(minute, DateMeasure) <= 45 then TheVal end)
from TheTable
group by convert(date, DateMeasure), datepart(hour, DateMeasure)
Можете ли вы предоставить некоторые образцы данных и ожидаемые результаты в удобном формате, пожалуйста? Это очень поможет нам помочь вам.