Sobes.tech
Junior

Rapport voor het logistiek bedrijf Je bent een analist bij een logistiek bedrijf dat de operaties in magazijnen bijhoudt. Je moet een rapport opstellen over de efficiëntie van elk magazijn. Voor elk magazijn bereken je: • het totale aantal operaties (count_operations); • het totale aantal verwerkte goederen in het magazijn (sum_quantity); • de gemiddelde verwerkingstijd van een operatie (avg_processing_time), rekening houdend met alleen operaties met een gespecificeerde tijd (niet NULL), afgerond op het dichtstbijzijnde gehele getal; • het maximale en minimale aantal goederen verwerkt in één operatie (max_quantity, min_quantity); • het aantal operaties van elk type («levering», «verzending», «verplaatsing») in aparte kolommen: supply_operations, shipment_operations, transfer_operations. Filter magazijnen waarvan het totale aantal operaties meer dan 2 is en de gemiddelde verwerkingstijd niet meer dan 60 minuten. Sorteer het resultaat op magazijn-ID in oplopende volgorde. Invoerformaat Tabel operaties: • operation_id (int) — unieke identificatie van de operatie • warehouse_id (int) — magazijn-ID • operation_type (text) — type operatie: «levering», «verzending», «verplaatsing»

sobes.tech AI

Antwoord van AI

Om een rapport over de efficiëntie van magazijnen op te stellen, kunt u de volgende SQL-query gebruiken:

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;

Hier:

  • quantity — aantal producten in de operatie;
  • processing_time — verwerkingstijd van de operatie (in minuten);
  • Er worden aggregatiefuncties gebruikt om statistieken te tellen en te berekenen;
  • Filtering op basis van het aantal operaties en de gemiddelde verwerkingstijd;
  • Het resultaat is gesorteerd op warehouse ID.