Sobes.tech
Junior

Zpráva pro logistickou společnost Jste analytikem logistické společnosti, která zaznamenává operace na skladech. Musíte sestavit zprávu o efektivitě každého skladu. Pro každý sklad vypočtěte: • celkový počet operací (count_operations); • celkový počet zpracovaných zboží na skladě (sum_quantity); • průměrnou dobu zpracování operace (avg_processing_time), pouze pro operace s určeným časem (ne NULL), zaokrouhlenou na celé číslo; • maximální a minimální počet zpracovaných zboží v jedné operaci (max_quantity, min_quantity); • počet operací každého typu («dodávka», «odeslání», «přesun») ve zvláštních sloupcích: supply_operations, shipment_operations, transfer_operations. Filtrovat sklady, jejichž celkový počet operací je větší než 2 a průměrná doba zpracování nepřesahuje 60 minut. Seřadit výsledek podle ID skladu vzestupně. Formát vstupu Tabulka operations: • operation_id (int) — unikátní identifikátor operace • warehouse_id (int) — ID skladu • operation_type (text) — typ operace: «dodávka», «odeslání», «přesun»

sobes.tech AI

Odpověď od AI

Pro sestavení zprávy o efektivitě skladů můžete použít následující SQL dotaz:

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;

Zde:

  • quantity — počet zboží v operaci;
  • processing_time — doba zpracování operace (v minutách);
  • Používají se agregační funkce pro počítání a výpočet statistik;
  • Filtrace podle počtu operací a průměrné doby zpracování;
  • Výsledek je seřazen podle ID skladu.