== Извештај = Неделен,Месечен,Годишен извештај '''Weekly''' \\ Креираме прашалник каде велиме "за секој ден од неделата во последни 7 дена,\\ прикажи број нарачки и вкупен приход" : \\ \\ {{{#!sql SELECT TO_CHAR(order_date, 'Dy') AS label, COUNT(*) AS orders, SUM(total_price) AS revenue FROM orders WHERE order_date >= NOW() - INTERVAL '7 days' GROUP BY label ORDER BY MIN(order_date); }}} \\ Функцијата {{{Day(order_date)}}} претставена со релациска алгебра \\ со помош на {{{групирање (aggregation)}}} :\\ {{{#!sql γ_Day(order_date); count(*), sum(total_price) (σ_order_date ≥ (CURRENT_DATE - 7) (Orders)) }}} \\ \\ '''Monthly''' \\ Креираме прашалник каде велиме "за секој месец, преброј ги нарачките и пресметај вкупен приход" : \\ \\ {{{#!sql SELECT TO_CHAR(order_date, 'Mon') AS label, COUNT(*) AS orders, SUM(total_price) AS revenue FROM orders GROUP BY label ORDER BY MIN(order_date); }}} \\ Функцијата {{{Month(order_date)}}} претставена со релациска алгебра \\ со помош на {{{групирање (aggregation)}}} :\\ {{{#!sql γ_Month(order_date); count(*), sum(total_price)(Orders) }}} \\ \\ '''Yearly''' \\ Креираме прашалник каде велиме "за секоја година, прикажи колку нарачки имало и колку приход е остварено" : \\ \\ {{{#!sql SELECT EXTRACT(YEAR FROM order_date)::INT AS label, COUNT(*) AS orders, SUM(total_price) AS revenue FROM orders GROUP BY label ORDER BY label; }}} \\ Функцијата {{{Year(order_date)}}} претставена со релациска алгебра \\ со помош на {{{групирање (aggregation)}}} :\\ {{{#!sql γ_Year(order_date); count(*), sum(total_price)(Orders) }}} \\ \\ = Најпродавани продукти '''Најпродавани продукти''' \\ Креираме прашалник каде велиме "за секој продукт, пресметај колку вкупно парчиња се продадени (збир на quantity),\\ сортирај ги и земи ги првите 5" : \\ \\ {{{#!sql SELECT p.product_name AS label, SUM(c.quantity) AS total_sold FROM contains c JOIN stock s ON c.id_stock = s.id_stock JOIN products p ON s.id_product = p.id_product GROUP BY p.product_name ORDER BY total_sold DESC LIMIT 5; }}} \\ Функцијата {{{top_products}}} претставена со релациска алгебра,потточно \\ ⨝ врска : {{{JOIN}}} меѓу {{{contains}}}, {{{stock}}}, {{{products}}} \\ π врска : проекција на колоните што се враќаат {{{label}}} и {{{total_sold}}} \\ γ врска : групирање по име на продукт, собирање на количини \\ ρ врска : преименување во {{{label}}} \\ τ_desc(...) врска : сортирање опаѓачки \\ \\ {{{#!sql π_label, total_sold ( τ_desc(total_sold) ( ρ(label ← p.product_name)( γ_p.product_name; SUM(c.quantity) → total_sold ( (Contains ⨝ Stock ⨝ Products) ) ) ) ) }}} \\ \\