Долгое время скрывался / помогал себе, когда мне удавалось взломать вещи, но я либо слишком поздно вечером, либо я просто упускал что-то очевидное. Я пытался создать автоматизированный график / запрос для использования моего маршрутизатора.
У меня есть вложенный запрос, который возвращает следующее:
Record_Date | Mbps_IN | Mbps_OUT
YYYYMMDD HH:00 | 1234 | 1234
это должно иметь одну запись в час но из-за проблем со сбором данных с моего маршрутизатора часто не хватает часов или даже дней отсутствия данных. Природа счетчика является «дельтой», поэтому в других местах «сырых данных» я фиксирую дельту объема данных между предыдущими записями, которая приводит к плоской линии в течение нескольких часов, а затем к очень большим значениям данных, часто 2 -3 раза больше, так как он содержит несколько часов использования, записанных по сравнению с первым часом, когда возвращался фид данных.
В конечном счете, я хотел бы найти способ сгладить / построить среднее значение из этого всплеска и заполнить недостающие часы , (но это вызов для другого дня)
В первом случае я просто хотел бы выбрать только те строки, где значение в Mbps_In меньше 1000.
Однако, когда я делаю это из метабазы или соединения dbeaver напрямую с моим PrestoDB я получаю сообщение об ошибке
Column 'results.Mbps_In' cannot be resolved {:message "line 27:7: Column 'results.Mbps_in' cannot be resolved", :errorCode 47, :errorName "COLUMN_NOT_FOUND",
Мой запрос прекрасно работает, чтобы вывести табличный вывод, включая выбросы, следующим образом
select
metrics_date_hour Record_Date
,round(In_Utilisation_Mbps_Total,2) as Mbps_In
,round(Out_Utilisation_Mbps_Total,2) as Mbps_Out
from (
nested query
) results
-- WHERE results.Mbps_In < 1000
Group By Record_Date, Order By Record_Date desc
Когда я раскомментируйте предложение Where, я получаю сообщение об ошибке при невозможности разрешить имя столбца. Я чувствую, что это не должно быть сложно, но я попробовал несколько вариантов и попыток ссылаться на некоторые из исходных столбцов, которые были обработаны ранее, чтобы получить эти выходные данные, но я все еще не могу правильно ссылаться на столбец из таблицы результатов.
Любые советы или указатели будут приняты с благодарностью.
Обновлено с успешным запросом:
select
metrics_date_hour Record_Date
,round(sum(In_Utilisation_Mbps_Total),2) as Mbps_In
,round(sum(Out_Utilisation_Mbps_Total),2) as Mbps_Out
from (
nested query
) results
-- WHERE results.Mbps_In < 1000 - I didn't get this to work
Group By Record_Date
Having (sum(In_Utilisation_Mbps_Total) <1000
Order By Record_Date desc