Назад к вопросам
Junior
8
Отчет для логистической компании Вы аналитик логистической компании, которая ведет учет операций на складах. Вам необходимо составить отчет по эффективности работы каждого склада. Для каждого склада рассчитайте: • общее количество операций (count_operations); • общее количество товаров, обработанных на складе (sum_quantity); • среднее время обработки операции (avg_processing_time), учитывая только операции с указанным временем (не NULL), округленное до целого числа; • максимальное и минимальное количество товаров, обработанных в одной операции (max_quantity, min_quantity); • количество операций каждого типа («поставка», «отгрузка», «перемещение») в отдельных колонках: supply_operations, shipment_operations, transfer_operations. Отфильтруйте склады, у которых общее количество операций больше 2 и среднее время обработки не превышает 60 минут. Отсортировать результат по ID склада по возрастанию. Формат ввода Таблица operations: • operation_id (int) — уникальный идентификатор операции • warehouse_id (int) — идентификатор склада • operation_type (text) — тип операции: «поставка», «отгрузка», «перемещение»
Компании, где спрашивали
01.tech
Ответ от нейросети
sobes.tech AI
Для составления отчёта по эффективности работы складов можно использовать следующий SQL-запрос:
SELECT
warehouse_id,
COUNT(*) AS count_operations,
SUM(quantity) AS sum_quantity,
ROUND(AVG(CASE WHEN processing_time IS NOT NULL THEN processing_time END)) AS avg_processing_time,
MAX(quantity) AS max_quantity,
MIN(quantity) AS min_quantity,
SUM(CASE WHEN operation_type = 'поставка' THEN 1 ELSE 0 END) AS supply_operations,
SUM(CASE WHEN operation_type = 'отгрузка' THEN 1 ELSE 0 END) AS shipment_operations,
SUM(CASE WHEN operation_type = 'перемещение' THEN 1 ELSE 0 END) AS transfer_operations
FROM operations
GROUP BY warehouse_id
HAVING COUNT(*) > 2 AND ROUND(AVG(CASE WHEN processing_time IS NOT NULL THEN processing_time END)) <= 60
ORDER BY warehouse_id ASC;
Здесь:
quantity— количество товаров в операции;processing_time— время обработки операции (в минутах);- Используются агрегатные функции для подсчёта и вычисления статистик;
- Фильтрация по количеству операций и среднему времени обработки;
- Результат отсортирован по ID склада.