| 99 | '''Предикција на производи кои наскоро ќе ги снема на залиха''' \\ |
| 100 | Креираме прашалник каде велиме "за секој продукт и големина, \\ |
| 101 | прикажи моментална залиха, просечна неделна продажба во последни 4 недели, и статус според таа продажба." \\ |
| 102 | Функцијата {{{stock_prediction}}} е претставена со релациска алгебра, каде што имаме: \\ |
| 103 | σ врска : селектирање на нарачки во последни 4 недели \\ |
| 104 | γ врска : групирање по {{{id_product}}} и {{{id_size}}}, пресметка на просечна неделна продажба. \\ |
| 105 | ⨝ врска : поврзување на {{{Products}}}, {{{Stock}}}, {{{Sizes}}}, и {{{Contains}}}.\\ |
| 106 | ⟕ врска : лева надворешна врска со продажбата (бидејки не сите продукти имаат продажба).\\ |
| 107 | γ врска : групирање по {{{product_name}}} и {{{size_label}}}, и пресметка.\\ |
| 108 | ρ врска : преименување на {{{product_name}}} → label}}} \\ |
| 109 | π врска : проекција на колоните {{{label}}}, {{{size}}}, {{{current_stock}}}, {{{avg_weekly_sales}}}, {{{status}}}\\ |
| 110 | τ(...) врска : сортирање прво според status опаѓачки (ИТНО > Набљудувај > Стабилно),\\ |
| 111 | а потоа по {{{avg_weekly_sales}}} опаѓачки. \\ |
| 112 | \\ |
| 113 | {{{#!sql |
| 114 | Result ← τ_status↓, avg_weekly_sales↓ ( |
| 115 | π_product_name, size_label, current_stock, avg_weekly_sales, status ( |
| 116 | γ_product_name, size_label; |
| 117 | SUM(quantity) → current_stock, |
| 118 | AVG(avg_weekly_sales) → avg_weekly_sales, |
| 119 | IF(SUM(quantity) ≤ AVG(avg_weekly_sales), 'ИТНО', 'Набљудувај') → status ( |
| 120 | (Products ⨝ Stock ⨝ Sizes) |
| 121 | ⟕ WeeklyAvgSales |
| 122 | ) |
| 123 | ) |
| 124 | ) |
| 125 | }}} |
| 126 | \\ |
| 127 | \\ |