Запрос SQL преобразовать в SQLalchemy
нужна помощь в построении запроса через SqlAlchemy.
Логика:
1). Есть таблица со списком девайсов (“UECAP_DEVICE”)
2). Девайсы тестируются в лаборатории в трёх условиях:
- с фильтром (condition = “filter”)
- без фильтра (condition = “n_filter”)
- 5G условия (condition = “5g”)
Вторая таблица - это “UECAP_DEVICE_CONDITION”, имеет поля:
▸ device_id (ссылка (FK) на девайс из таблицы “UECAP_DEVICE”)
▸ binary_id (ссылка (FK) на HEX-код из таблицы “UECAP_BINARY”, который является результатом тестирования оборудования)
▸ uecap_analyze_id (ссылка (FK) на запись из таблицы “UECAP_ ANALYZE”, которая хранит результаты декодирования HEX-кода (характеристики девайса))
▸ condition (имеет одно из значений: “filter”, “n_filter”, “5g” и “combined”).
Сondition = “combined”, это условное состояние, которое просто нужно для хранения объединённых данных из вышеуказанных трех условий (“filter”, “n_filter”, “5g”), которые хранятся в таблице “UECAP_ ANALYZE”. И поэтому у “combined” нет ссылки на таблицу “UECAP_BINARY” (т. к. он не имеет HEX-кода).
3). И третья таблица — это “UECAP_ ANALYZE”.
Для “filter”, “n_filter” и “5g” — там хранятся результаты декодирования HEX-кода (характеристики девайса).
Для “combined” — там хранятся merged/агрегированные данные из трёх вышеуказанных состояний.
QUERY
По умолчанию отправляется запрос в БД, который включает данные из таблиц:
“UECAP_DEVICE” + “UECAP_DEVICE_CONDITION” (WHERE condition = “combined”) + UECAP_ ANALYZE (привязанная через FK к uecap_device_condition.condition = “combined”)
И они отсортированы по ID девайса.
Таким образом появляется список девайсов с merged информацией (для состояния “combined”).
Но мне нужно отсортировать список девайсов по двум вариантам:
1). длина (length) HEX-кода (таблица “UECAP_BINARY”, поле “UECAP_BIN”) из состояния condition = “5g”.
2). получаить максимальное значение длины HEX-кода для всех трёх состояний (“filter”, “n_filter”, “5g”) и уже по нему отсортировать список девайсов.
Например для некоторого девайса:
length(uecap_binary.uecap_bin) для “filter” = 100
length(uecap_binary.uecap_bin) для “n_filter” = 200
length(uecap_binary.uecap_bin) для “5g” = 300
Соответственно в сортировке девайсов будет учавствовать значение 300.
В SQL часть кода выглядит следующим образом:
(select max(length(ub.uecap_bin_5g))
from uecap_device_condition udc
left join uecap_binary ub on udc.binary_id = ub.id
where udc.condition <> 'combined'
and udc.uecap_device_id = uecap_device.id
) AS lng
Как этот SQL запрос составить в SQLalchemy?
Додатки 1
Актуальні фриланс-проєкти в категорії Python
Розробка програмного забезпечення з ШІПотрібно розробити програмне забезпечення для автоматичного виявлення, захоплення та супроводження об'єкта за допомогою відеокамери та поворотного механізму.Вихідні дані: Відеокамера з оптикою. Поворотний пристрій по двох осях (азимут/кут місця). Сервоприводи з керуванням через… AI та машинне навчання, Python ∙ 1 день 3 години тому ∙ 14 ставок |
ТЗ НА ДОПРАЦЮВАННЯ AI-БОТА ГЕНЕРАЦІЇ ПЕРСОНАЛЬНИХ ПІСЕНЬТЗ НА ДОПРАЦЮВАННЯ AI-БОТА ГЕНЕРАЦІЇ ПЕРСОНАЛЬНИХ ПІСЕНЬГОЛОВНА ЦІЛЬ Створити стабільний преміальний продукт, який: генерує максимально якісні персональні пісні; не вигадує факти про клієнта; працює стабільно під навантаженням; легко масштабується; дозволяє аналізувати та… Python, Розробка ботів ∙ 1 день 4 години тому ∙ 30 ставок |
Автоматизація процесів через API та PythonНижче описав поточний процес і те, до якого результату хотілося б прийти. Також прикладаю файли реального процесу, щоб краще зрозуміти, як він виглядає в реальності Поточний процес Зараз весь процес виконується вручну: завантаження/вивантаження файлів, перенесення даних… AI та машинне навчання, Python ∙ 1 день 8 годин тому ∙ 43 ставки |
Потрібно створити бот в тг для оплати підписки.
2000 UAH
Потрібно створити бот в телеграмі де користувач зможе оформити підписку на доступ до веб камер котрі знгаходяться у дворі. Організувати в боті оплату двух видів підписок (на місяць і на один день). Бот повинен автоматично перевірити оплату і після видавати посилання-доступу Python, Розробка ботів ∙ 1 день 21 година тому ∙ 78 ставок |
Бізнес-логіка платформи: підтвердження занять, контроль відвідуваності та історія уроків (DjangoДоопрацювання бізнес-логіки освітньої платформи: підтвердження занять, контроль відвідуваності та історія уроків (Django + React) Необхідно реалізувати повноцінну систему підтвердження уроків, контролю відвідуваності та зберігання історії підтверджень. Важливо Перед початком… Python ∙ 4 дні 9 годин тому ∙ 30 ставок |