Sobes.tech
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.