Sobes.tech
Junior

Логистика компаниясы үчүн отчет Сиз логистика компаниясында аналитисиз, ал жерде сактагычтардагы операциялар катталат. Ар бир сактагычтын эффективдүүлүгү боюнча отчет түзүшүңүз керек. Ар бир сактагыч үчүн эсептеңіз: • жалпы операциялар саны (count_operations); • сактагычта иштелип чыккан жалпы товарлар саны (sum_quantity); • операциянын орточо иштетүү убактысы (avg_processing_time), тек белгиленген убакыт менен (NULL эмес), жакын санга чейинки жыйырма; • бир операцияда иштелип чыккан максимал жана минималдуу товарлар саны (max_quantity, min_quantity); • ар бир түрдөгү операциялардын саны («жеткирүү», «жөнөтүү», «көчүрүү») өзүнчө колонкаларда: supply_operations, shipment_operations, transfer_operations. Жалпы операциялар саны 2ден көп жана орточо иштетүү убактысы 60 мүнөттөн ашпаган сактагычтарды фильтрлөө. Натыйжаны сактагыч ID боюнча өсүүчү тартипте сорттоо. Кирүү форматы Операциялар таблицасы: • operation_id (int) — операциянын уникалдуу идентификатору • warehouse_id (int) — сактагыч ID • operation_type (text) — операциянын түрү: «жеткирүү», «жөнөтүү», «көчүрүү»

sobes.tech AI

AIден жооп

Anbarlaryň netijeliligini hasabat etmek üçin aşakdaky SQL soragyny ulanyp bilersiňiz:

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;

Мында:

  • quantity — операциядагы товарлардын саны;
  • processing_time — операциянын иштетүү убактысы (мүнөттө);
  • Статистикаларды эсептөө жана эсептөө үчүн агрегаттык функциялар колдонулат;
  • Операциялардын саны жана орто иштетүү убактысы боюнча фильтр;
  • Натыйжа сактагыч ID боюнча сорттолгон.