Junior
Rapporto per l'azienda logistica Sei un analista di un'azienda logistica che tiene traccia delle operazioni nei magazzini. Devi preparare un rapporto sull'efficienza di ogni magazzino. Per ogni magazzino, calcola: • il numero totale di operazioni (count_operations); • il numero totale di prodotti elaborati nel magazzino (sum_quantity); • il tempo medio di elaborazione di un'operazione (avg_processing_time), considerando solo le operazioni con tempo specificato (non NULL), arrotondato al numero intero più vicino; • il massimo e minimo numero di prodotti elaborati in una singola operazione (max_quantity, min_quantity); • il numero di operazioni di ogni tipo («fornitura», «spedizione», «trasferimento») in colonne separate: supply_operations, shipment_operations, transfer_operations. Filtra i magazzini con un numero totale di operazioni superiore a 2 e un tempo medio di elaborazione non superiore a 60 minuti. Ordina il risultato per ID magazzino in ordine crescente. Formato di input Tabella operations: • operation_id (int) — identificatore unico dell'operazione • warehouse_id (int) — identificatore del magazzino • operation_type (text) — tipo di operazione: «fornitura», «spedizione», «trasferimento»
sobes.tech AI
Risposta dell'AI
Per redigere un rapporto sull'efficienza dei magazzini, è possibile utilizzare la seguente query 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;
Qui:
quantity— quantità di prodotti nell'operazione;processing_time— tempo di elaborazione dell'operazione (in minuti);- Vengono utilizzate funzioni aggregate per contare e calcolare statistiche;
- Filtro per numero di operazioni e tempo medio di elaborazione;
- Il risultato è ordinato per ID del magazzino.