Changes between Initial Version and Version 1 of Напредни извештаи од базата (SQL и складирани процедури)


Ignore:
Timestamp:
06/25/25 04:11:47 (15 hours ago)
Author:
183175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Напредни извештаи од базата (SQL и складирани процедури)

    v1 v1  
     1== Напредни извештаи од базата (SQL и складирани процедури)
     2= Неделен,Месечен,Годишен извештај
     3'''Weekly''' \\
     4Креираме прашалник каде велиме "за секој ден од неделата во последни 7 дена,\\ прикажи број нарачки и вкупен приход" : \\
     5\\
     6{{{#!sql
     7SELECT TO_CHAR(order_date, 'Dy') AS label,
     8       COUNT(*) AS orders,
     9       SUM(total_price) AS revenue
     10FROM orders
     11WHERE order_date >= NOW() - INTERVAL '7 days'
     12GROUP BY label
     13ORDER BY MIN(order_date);
     14}}}
     15\\
     16
     17'''Monthly''' \\
     18Креираме прашалник каде велиме "за секој месец, преброј ги нарачките и пресметај вкупен приход" : \\
     19\\
     20{{{#!sql
     21SELECT TO_CHAR(order_date, 'Mon') AS label,
     22       COUNT(*) AS orders,
     23       SUM(total_price) AS revenue
     24FROM orders
     25GROUP BY label
     26ORDER BY MIN(order_date);
     27}}}
     28\\
     29
     30'''Yearly''' \\
     31Креираме прашалник каде велиме "за секоја година, прикажи колку нарачки имало и колку приход е остварено" : \\
     32\\
     33{{{#!sql
     34SELECT EXTRACT(YEAR FROM order_date)::INT AS label,
     35       COUNT(*) AS orders,
     36       SUM(total_price) AS revenue
     37FROM orders
     38GROUP BY label
     39ORDER BY label;
     40}}}
     41\\
     42
     43= Најпродавани продукти,Топ клиенти,Нови регистрации по месец
     44'''Најпродавани продукти''' \\
     45Креираме прашалник каде велиме "за секој продукт, пресметај колку вкупно парчиња се продадени \\
     46(збир на quantity), сортирај ги и земи ги првите 5" : \\
     47\\
     48{{{#!sql
     49SELECT
     50  p.product_name AS label,
     51  SUM(c.quantity) AS total_sold
     52FROM contains c
     53JOIN stock s ON c.id_stock = s.id_stock
     54JOIN products p ON s.id_product = p.id_product
     55GROUP BY p.product_name
     56ORDER BY total_sold DESC
     57LIMIT 5;
     58}}}
     59\\
     60'''Топ клиенти''' \\
     61Креираме прашалник каде велиме "да се пресмета колку трошел секој клиент вкупно,\\
     62и да се сортира според таа сума,на крај да ги врати ги првите 5" : \\
     63\\
     64{{{#!sql
     65SELECT
     66  c.first_name || ' ' || c.last_name AS label,
     67  SUM(o.total_price) AS total_spent
     68FROM orders o
     69JOIN customers c ON o.id_customer = c.id_customer
     70GROUP BY c.first_name, c.last_name
     71ORDER BY total_spent DESC
     72LIMIT 5;
     73}}}
     74\\
     75'''Нови регистрации по месец''' \\
     76Креираме прашалник каде велиме "за секој месец, прикажи колку нови корисници се регистрирале" : \\
     77\\
     78{{{#!sql
     79SELECT
     80  TO_CHAR(created_at, 'Mon YYYY') AS label,
     81  COUNT(*) AS new_users
     82FROM customers
     83GROUP BY label
     84ORDER BY MIN(created_at);
     85}}}
     86\\