Я использую этот код для получения номера AVG с моего oracle сервера базы данных, и теперь мне нужен код для получения числа с самым высоким, если положительное, и самым низким, если отрицательное. Как я могу это сделать?:
Select AVG(EAX_T) AS EAX, AVG(EAI_T) AS EAI, H
FROM TABLENAME
WHERE SR = ? AND TO_DATE(DATEADD) = ?
GROUP BY H
ORDER BY H ASC
Данные могут быть такими:
SR |H |EAX_T |EAI_T
45 |8 |-3 |0
45 |8 |-2 |0
98 |8 |8 |0
98 |8 |2 |0
106 |8 |0 |-1
106 |8 |0 |-9
Я хочу sql Запрос для выбора группы строк по H и SR, если EAI_T ИЛИ EAX_T - положительное число, выберите строку с максимальным значением и если EAI_T или EAX_T отрицательны, выберите самый низкий , Если
45 |8 |-3 |0
45 |8 |-2 |0
ВЫБЕРИТЕ СТРОКУ, которая имеет -3 И если
98 |8 |8 |0
98 |8 |2 |0
ВЫБЕРИТЕ строку, которая имеет 8
Обновление: у меня 46 миллионов строк. в час, поэтому за один день у меня есть 1000 устройств, и мне нужно получить среднее значение данных в H, и если оно выше 0, получить максимальное число за день, а если меньше 0, получить самые низкие строки, чтобы сделать мою другую таблицу с этими данными, поэтому SR ref на идентификатор устройства и в моей новой таблице я выбрал данные, которые я нашел, и сделал H1, H2, .... для устройств