Changes between Version 6 and Version 7 of Прашалници со релациска алгебра


Ignore:
Timestamp:
06/24/25 19:25:53 (26 hours ago)
Author:
183175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Прашалници со релациска алгебра

    v6 v7  
    1414}}}
    1515\\
    16 Функцијата {{{Day(order_date)}}} претставена со релациска алгебра  \\
     16Функцијата {{{Day(order_date)}}} претставена со '''релациска алгебра'''  \\
    1717со помош на {{{групирање (aggregation)}}} :\\
    1818{{{#!sql
     
    3535}}}
    3636\\
    37 Функцијата {{{Month(order_date)}}} претставена со релациска алгебра  \\
     37Функцијата {{{Month(order_date)}}} претставена со '''релациска алгебра'''  \\
    3838со помош на {{{групирање (aggregation)}}} :\\
    3939{{{#!sql
     
    5454}}}
    5555\\
    56 Функцијата {{{Year(order_date)}}} претставена со релациска алгебра  \\
     56Функцијата {{{Year(order_date)}}} претставена со '''релациска алгебра'''  \\
    5757со помош на {{{групирање (aggregation)}}} :\\
    5858{{{#!sql
     
    6161\\
    6262\\
    63 = Најпродавани продукти
     63= Најпродавани продукти,Топ клиенти,Нови регистрации по месец
    6464'''Најпродавани продукти''' \\
    6565Креираме прашалник каде велиме "за секој продукт, пресметај колку вкупно парчиња се продадени (збир на quantity),\\
     
    7878}}}
    7979\\
    80 Функцијата {{{top_products}}} претставена со релациска алгебра,потточно \\
     80Функцијата {{{top_products}}} претставена со '''релациска алгебра''' каде што имаме \\
    8181⨝ врска : {{{JOIN}}} меѓу {{{contains}}}, {{{stock}}}, {{{products}}} \\
    8282π врска : проекција на колоните што се враќаат {{{label}}} и {{{total_sold}}} \\
     
    9898\\
    9999\\
     100'''Топ клиенти''' \\
     101Креираме прашалник каде велиме "да се пресмета колку трошел секој клиент вкупно,\\
     102и да се сортира според таа сума,на крај да ги врати ги првите 5" : \\
     103\\
     104{{{#!sql
     105SELECT
     106  c.first_name || ' ' || c.last_name AS label,
     107  SUM(o.total_price) AS total_spent
     108FROM orders o
     109JOIN customers c ON o.id_customer = c.id_customer
     110GROUP BY c.first_name, c.last_name
     111ORDER BY total_spent DESC
     112LIMIT 5;
     113\\
     114Функцијата {{{top_clients}}} претставена со релациска алгебра, каде што имаме: \\
     115⨝ врска : {{{JOIN}}} меѓу {{{orders}}} и {{{customers}}} \\
     116γ врска : групирање по {{{first_name}}} и {{{last_name}}} и собирање на {{{SUM(total_price)}}} \\
     117ρ врска : преименување на комбинацијата {{{first_name || ' ' || last_name}}} во {{{label}}} \\
     118π врска : проекција на колоните {{{label}}} и {{{total_spent}}} \\
     119τ_desc(...) врска : сортирање по {{{total_spent}}} во опаѓачки редослед  \\
     120LIMIT 5 : се применува како пост-процес за враќање на првите 5 записи \\
     121\\
     122{{{#!sql
     123π_label, total_spent (
     124  τ_desc(total_spent) (
     125    ρ(label ← concat(c.first_name, ' ', c.last_name)) (
     126      γ_c.first_name, c.last_name; SUM(o.total_price) → total_spent (
     127        Orders ⨝ Customers
     128      )
     129    )
     130  )
     131)
     132}}}
     133\\
     134\\
     135'''Нови регистрации по месец''' \\
     136Креираме прашалник каде велиме "за секој месец, прикажи колку нови корисници се регистрирале" : \\
     137\\
     138{{{#!sql
     139SELECT
     140  TO_CHAR(created_at, 'Mon YYYY') AS label,
     141  COUNT(*) AS new_users
     142FROM customers
     143GROUP BY label
     144ORDER BY MIN(created_at);
     145\\
     146Функцијата {{{new_users}}} претставена со релациска алгебра, каде што имаме: \\
     147γ врска : групирање по {{{TO_CHAR(created_at, 'Mon YYYY')}}} \\
     148ρ врска : преименување на изразот {{{TO_CHAR(...)}}} во {{{label}}} \\
     149π врска : проекција на колоните {{{label}}} и {{{new_users}}} \\
     150τ(...) врска : сортирање според {{{MIN(created_at)}}} порастечки (од најстаро кон најново) \\
     151\\
     152{{{#!sql
     153γ_MonthYear(created_at); COUNT(*) → new_users (Customers)
     154или
     155π_label, new_users (
     156  ρ(label ← TO_CHAR(created_at, 'Mon YYYY')) (
     157    γ_label; COUNT(*) → new_users (Customers)
     158  )
     159)
     160
     161}}}
     162\\
     163\\