Junior
Ziņojums loģistikas uzņēmumam Jūs esat loģistikas uzņēmuma analītiķis, kurš reģistrē noliktavu operācijas. Jums jāizstrādā ziņojums par katra noliktavas efektivitāti. Katrai noliktavai aprēķiniet: • kopējo operāciju skaitu (count_operations); • kopējo apstrādāto preču skaitu noliktavā (sum_quantity); • vidējo operācijas apstrādes laiku (avg_processing_time), ņemot vērā tikai operācijas ar norādītu laiku (ne NULL), noapaļotu līdz tuvākajam veselajam skaitlim; • maksimālo un minimālo preču skaitu, kas apstrādāts vienā operācijā (max_quantity, min_quantity); • katra veida operāciju skaitu («piegāde», «sūtīšana», «pārvietošana») atsevišķās kolonnās: supply_operations, shipment_operations, transfer_operations. Filtrējiet noliktavas, kuru kopējais operāciju skaits ir lielāks par 2 un vidējais apstrādes laiks nepārsniedz 60 minūtes. Rezultātu sakārtojiet pēc noliktavas ID augošā secībā. Ievades formāts Operāciju tabula: • operation_id (int) — unikāls operācijas ID • warehouse_id (int) — noliktavas ID • operation_type (text) — operācijas veids: «piegāde», «sūtīšana», «pārvietošana»
sobes.tech AI
Atbilde no AI
Lai sagatavotu noliktavu efektivitātes ziņojumu, jūs varat izmantot sekojošo SQL vaicājumu:
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;
Šeit:
quantity— preču daudzums operācijā;processing_time— operācijas apstrādes laiks (minūtēs);- Tiek izmantotas agregatīvās funkcijas statistikas skaitīšanai un aprēķināšanai;
- Filtrs pēc operāciju skaita un vidējā apstrādes laika;
- Rezultāts ir sakārtots pēc noliktavas ID.