Sobes.tech
Junior

Bericht für das Logistikunternehmen Sie sind Analyst bei einem Logistikunternehmen, das die Operationen in den Lagern erfasst. Sie müssen einen Bericht über die Effizienz jedes Lagers erstellen. Berechnen Sie für jedes Lager: • die Gesamtzahl der Operationen (count_operations); • die Gesamtzahl der im Lager verarbeiteten Waren (sum_quantity); • die durchschnittliche Bearbeitungszeit einer Operation (avg_processing_time), nur für Operationen mit festgelegter Zeit (nicht NULL), auf die nächste ganze Zahl gerundet; • die maximale und minimale Anzahl der in einer Operation verarbeiteten Waren (max_quantity, min_quantity); • die Anzahl der Operationen jedes Typs («Lieferung», «Versand», «Transfer») in separaten Spalten: supply_operations, shipment_operations, transfer_operations. Filtern Sie Lager, bei denen die Gesamtzahl der Operationen mehr als 2 beträgt und die durchschnittliche Bearbeitungszeit 60 Minuten nicht überschreitet. Sortieren Sie das Ergebnis nach Lager-ID aufsteigend. Eingabeformat Tabelle operations: • operation_id (int) — eindeutiger Identifikator der Operation • warehouse_id (int) — Lager-ID • operation_type (text) — Operationstyp: «Lieferung», «Versand», «Transfer»

sobes.tech KI

Antwort von AI

Um eine Effizienzbericht für Lager zu erstellen, kann die folgende SQL-Abfrage verwendet werden:

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 — Anzahl der Produkte in der Operation;
  • processing_time — Bearbeitungszeit der Operation (in Minuten);
  • Es werden Aggregatfunktionen verwendet, um Statistiken zu zählen und zu berechnen;
  • Filterung nach Anzahl der Operationen und durchschnittlicher Bearbeitungszeit;
  • Das Ergebnis ist nach Lager-ID sortiert.