| 1 | == Za sekoj restoran da se najdat menu items koi se najcesto prodavani, vkupna kolicina na prodadeni menu items i vkupna zarabotka i cena na item-ot |
| 2 | |
| 3 | {{{#!div style="font-size: 100%" |
| 4 | {{{#!sql |
| 5 | WITH kolicina_na_mrodadeni_menu_items_po_restoran AS ( |
| 6 | SELECT n.restoran_id, nsm.menuitem_id, COUNT(DISTINCT n.id) AS br_prodadeni_menuitems_po_restoran |
| 7 | FROM naracka n |
| 8 | JOIN naracka_sodrzi_menu_item nsm ON n.id=nsm.naracka_id |
| 9 | JOIN naplata na ON na.naracka_id=n.id |
| 10 | GROUP BY n.restoran_id, nsm.menuitem_id |
| 11 | ), presmetka_najprodavan_menu_item_po_restoran AS( |
| 12 | SELECT restoran_id, menuitem_id, br_prodadeni_menuitems_po_restoran, ROW_NUMBER() OVER(PARTITON BY restoran_id, menuitem_id ORDER BY br_prodadeni_menuitems_po_restoran DESC) RN |
| 13 | FROM kolicina_na_mrodadeni_menu_items_po_restoran |
| 14 | ) |
| 15 | SELECT r.ime AS ime_na_restoran, mi.ime AS najprodavan_menu_item, br_prodadeni_menuitems_po_restoran AS prodadena_kolicina, mi.cena AS cena_na_menu_item, (br_prodadeni_menuitems_po_restoran*mi.cena) AS vkupna_zarabotka_od_najprodavan_menu_item |
| 16 | FROM presmetka_najprodavan_menu_item_po_restoran nmipr |
| 17 | JOIN restoran r ON nmipr.restoran_id=r.id |
| 18 | JOIN menu_item mi ON nmipr.menuitem_id=mi.id |
| 19 | WHERE RN=1; |
| 20 | }}} |
| 21 | }}} |
| 22 | |
| 23 | == Za sekoj restoran da se najde potrosuvacot(potrosuvacite) koj napravil najmnogu naracki za tekovnata godina, kolku naracki napravil vo restoranot i da se izlista adresa i telefonski broj na potrosuvacot |
| 24 | |
| 25 | {{{#!div style="font-size: 100%" |
| 26 | {{{#!sql |
| 27 | WITH broj_na_naracki_potrosuvac_restoran_tekovna_godina AS( |
| 28 | SELECT n.potrosuvac_id, n.restoran_id, COUNT(DISTINCT n.id) AS broj_na_naracki |
| 29 | FROM naracka n |
| 30 | WHERE extract(year from n.datum)=extract(year from now()) |
| 31 | GROUP BY n.potrosuvac_id, n.restoran_id |
| 32 | ), presmetka_najveren_potrosuvac_po_restoran_za_tekovna_godina AS( |
| 33 | SELECT n.restoran_id, max(broj_na_naracki) as max_broj_naracki |
| 34 | FROM broj_na_naracki_potrosuvac_restoran_tekovna_godina |
| 35 | ) |
| 36 | SELECT p.address AS adresa_na_najveren_potrosuvac, p.br_telefon AS br_telefon_na_najveren_potrosuvac, a.broj_na_naracki, r.ime AS ime_na_restoran |
| 37 | FROM broj_na_naracki_potrosuvac_restoran_tekovna_godina a |
| 38 | JOIN presmetka_najveren_potrosuvac_po_restoran_za_tekovna_godina b ON a.restoran_id=b.restoran_id AND a.broj_na_naracki=b.max_broj_naracki |
| 39 | JOIN potrosuvac p ON p.korisnik_id=a.potrosuvac_id |
| 40 | JOIN restoran r ON a.restoran_id=r.id; |
| 41 | }}} |
| 42 | }}} |
| 43 | |
| 44 | |
| 45 | |
| 46 | == Restoran so najmnogu naracki vo poslednite tri meseci |
| 47 | |
| 48 | {{{#!div style="font-size: 100%" |
| 49 | {{{#!sql |
| 50 | CREATE VIEW restoran_broj_naracki AS |
| 51 | SELECT n.restoran_id, COUNT(DISTINCT n.id) AS broj_na_naracki |
| 52 | FROM naracka n |
| 53 | WHERE n.datum between (now()-interval '3 months') and now() |
| 54 | GROUP BY n.restoran_id; |
| 55 | |
| 56 | SELECT r.ime AS ime_na_restoran, rbn.broj_na_naracki |
| 57 | FROM restoran_broj_naracki rbn |
| 58 | JOIN restoran r ON rbn.restoran_id=r.id |
| 59 | WHERE rbn.broj_na_naracki = (SELECT MAX(broj_na_naracki) FROM restoran_broj_naracki); |
| 60 | }}} |
| 61 | }}} |
| 62 | |
| 63 | |
| 64 | |