В таблице у меня есть данные, поступающие с датчиков. Значение активности отправляется датчиком каждые 15 минут. Теперь я хочу рассчитать среднее значение этих значений 2 раза в день. Как и в случае, 1-е среднее значение дня будет средним значением с 00:00:00 до 12:00:00, а второе среднее значение за тот же день будет находиться между 12:00 и 23:59: 59.SQL Server DateTime Intervals
Мои TimeStampByNode
магазинах столбцов DATETIME в формате datetime2
, т.е. «2015-09-02 2:03:04»
Я использовал этот запрос, чтобы получить среднее ежедневное, то есть все 24 часа;
SELECT
DATEFROMPARTS(YEAR(TimeStampByNode), MONTH(TimeStampByNode), DAY(TimeStampByNode)),
ROUND(AVG(Value), 2)
FROM
data_record2
WHERE
Node_ID = 55554321 AND Value_Type = 'Activity'
GROUP BY
DATEFROMPARTS(YEAR(TimeStampByNode), MONTH(TimeStampByNode), DAY(TimeStampByNode))
ORDER BY
DATEFROMPARTS(YEAR(TimeStampByNode), MONTH(TimeStampByNode), DAY(TimeStampByNode)) DESC
Как изменить это, чтобы получить 2 среднесуточных значения?
Я получаю ошибка, указывающая «Функция AVG требует 1 аргумент (ы)». –
Это неверные вычисления. Первый ответ возвращает правильные значения. Может ли это иметь какое-либо отношение к передаче нулей в сценарии, где случай не выполняется? –
Ah - второе условие должно быть> = 12 – Jan