Junior
Relatório para a empresa logística Você é um analista de uma empresa logística que mantém registros de operações nos armazéns. Você precisa elaborar um relatório sobre a eficiência de cada armazém. Para cada armazém, calcule: • o número total de operações (count_operations); • o número total de produtos processados no armazém (sum_quantity); • o tempo médio de processamento de uma operação (avg_processing_time), considerando apenas operações com tempo especificado (não NULL), arredondado para o número inteiro mais próximo; • o número máximo e mínimo de produtos processados em uma única operação (max_quantity, min_quantity); • o número de operações de cada tipo («fornecimento», «expedição», «transferência») em colunas separadas: supply_operations, shipment_operations, transfer_operations. Filtre os armazéns cujo número total de operações seja maior que 2 e o tempo médio de processamento não ultrapasse 60 minutos. Ordene o resultado pelo ID do armazém em ordem crescente. Formato de entrada Tabela operations: • operation_id (int) — identificador único da operação • warehouse_id (int) — identificador do armazém • operation_type (text) — tipo de operação: «fornecimento», «expedição», «transferência»
sobes.tech IA
Resposta da IA
Para elaborar um relatório sobre a eficiência dos armazéns, pode usar a seguinte consulta 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;
Aqui:
quantity— quantidade de produtos na operação;processing_time— tempo de processamento da operação (em minutos);- São utilizadas funções agregadas para contar e calcular estatísticas;
- Filtragem por quantidade de operações e tempo médio de processamento;
- O resultado é ordenado por ID do armazém.