powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Усреднение данных
5 сообщений из 5, страница 1 из 1
Усреднение данных
    #40071950
jess163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Встала такая задача:

Имеются данные: дата, номер продукта, качество, значение 1 - 4
MEAS_DT(dt) prod_n(int) kz(int) cp1(int) cp2(int) cp3(int) cp4(int)2020-05-20 14:21 1 0 10 10 10 102020-05-20 14:41 1 40 20 10 10 102020-05-20 15:01 1 0 30 10 10 102020-05-20 15:21 1 0 20 10 10 102020-05-20 15:41 1 40 20 10 10 102020-05-20 17:01 1 80 20 10 10 10

Требуется усреднить значения
На выходе должны получить
MEAS_DT(dt) prod_n(int) kz(int) cp1(int) cp2(int) cp3(int) cp4(int)2020-05-20 15:01 1 0(берем последнее значение) 30 10 10 102020-05-20 17:01 1 80(последнее значение) 20 10 10 10

Код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT DATEPART(year, MEAS_DT)  as YY
,      DATEPART(month, MEAS_DT) as MM
,      DATEPART(day, MEAS_DT)   as DD
,      DATEPART(hour, MEAS_DT)  as HH
,      LST1.PROD_N                        
,      LST1.KZ                            
,      convert(numeric(15,3), AVG(L1.CP1)) as CP1
,      convert(numeric(15,3), AVG(L1.CP2)) as CP2
,      convert(numeric(15,3), AVG(L1.CP3)) as CP3
,      convert(numeric(15,3), AVG(L1.CP4)) as CP4
FROM       last1 AS L1  
INNER JOIN last1 AS LST1 ON LST1.MEAS_DT = '2021-05-20 16:01'
		AND LST1.PROD_N = L1.PROD_N
WHERE L1.MEAS_DT > DATEADD(HOUR, -1, '2021-05-20 16:01')
	AND L1.MEAS_DT <= '2021-05-20 16:01'
GROUP BY LST1.PROD_N
,        LST1.KZ
ORDER BY LST1.PROD_N



В коде привязал определенную дату, но это должно работать на большом интервале дат.
...
Рейтинг: 0 / 0
Усреднение данных
    #40071953
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все в восхищении!

Но вопрос то в чем?
...
Рейтинг: 0 / 0
Усреднение данных
    #40071957
jess163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,
Немного не дописал. Извиняюсь. Нужна проверка на пустые значения. Можно ли это как-то реализовать?
Скажем если пропущено время в интервале за xx:21, xx:41, xx:01 он вставлял в xx:01 пустые значения
...
Рейтинг: 0 / 0
Усреднение данных
    #40071958
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jess163
aleks222,
Немного не дописал. Извиняюсь. Нужна проверка на пустые значения. Можно ли это как-то реализовать?
Скажем если пропущено время за 16:00 он вставлял пустые значения?


[Табличка всех желаемых "времен"] left outer join c ней.
...
Рейтинг: 0 / 0
Усреднение данных
    #40071959
jess163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,
спасибо, попробую реализовать
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Усреднение данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]