Junior
Ataskaita logistikos įmonei Jūs esate logistikos įmonės analitikas, kuris registruoja operacijas sandėliuose. Turite paruošti ataskaitą apie kiekvieno sandėlio efektyvumą. Kiekvienam sandėliui apskaičiuokite: • bendrą operacijų skaičių (count_operations); • bendrą apdorotų prekių kiekį sandėlyje (sum_quantity); • vidutinį operacijos apdorojimo laiką (avg_processing_time), apskaičiuotą tik iš operacijų su nurodytu laiku (ne NULL), suapvalintą iki artimiausio sveiko skaičiaus; • didžiausią ir mažiausią prekių kiekį, apdorotą vienoje operacijoje (max_quantity, min_quantity); • kiekvieno tipo operacijų skaičių («pateikimas», «siuntimas», «perdavimas») atskirose stulpeliuose: supply_operations, shipment_operations, transfer_operations. Filtruokite sandėlius, kurių bendras operacijų skaičius yra daugiau nei 2 ir vidutinis apdorojimo laikas neviršija 60 minučių. Rodyti rezultatą pagal sandėlio ID didėjimo tvarka. Įvesties formatas Operacijų lentelė: • operation_id (int) — unikalus operacijos ID • warehouse_id (int) — sandėlio ID • operation_type (text) — operacijos tipas: «pateikimas», «siuntimas», «perdavimas»
sobes.tech AI
Atsakymas iš AI
Sukurti sandėlių efektyvumo ataskaitą, galite naudoti šią SQL užklausą:
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;
Čia:
quantity— prekių kiekis operacijoje;processing_time— operacijos apdorojimo laikas (minutėmis);- Naudojamos agregatinės funkcijos skaičiavimams ir statistikai;
- Filtras pagal operacijų skaičių ir vidutinį apdorojimo laiką;
- Rezultatas surūšiuotas pagal sandėlio ID.