wiki:p4

Напредни извештаи од базата (SQL)

Извештај за секоја нарачка на посетител во последниот месец и начинот на кој е извршена

  • Се спојуваат табелите recepti и so_koi.
  • Потоа се филтрираат по датумот на нарачката, чиј што датум треба да биде не постар од еден месец.
  • Потоа атрибутите се групираат по telefon- id за посетителот, rec_id - id за рецептот нарачан, nacin - начин на достава, rec_ime - името за рецептот.
  • На крај резултато се сортира по telefon, total_recipie_orders( колона која пресметува вкупен број на рецепти) и rec_id.
select telefon , count(sk.rec_id) total_recipie_orders, sk.rec_id  ,r.rec_ime,  sk.nacin  
from so_koi sk 
left join recepti r on
	r.rec_id = sk .rec_id
where vreme > current_date - interval '1 month'
group by telefon, sk.rec_id, nacin, r.rec_ime
order by telefon, total_recipie_orders desc, sk.rec_id desc;

Извештај за сите рецепти за кои има коментар и нарачка од посетителот кој го нарачал јадењето. Коментарот не смее да биде постар од 3 месеци.

  • Се спојуваат табелите komentari и recepti.
  • Резултатот се групира по komentar - rec_id (id за рецептот за кој се напишал коментар) и recepti - rec_ime (името на рецептот).
  • Во where делот се филтрира така што komentar - rec_id и komentar - telefont (telefonot на посетителот кој го напишал коментарот) се наоѓаат во табелата so_koi (се чуваат сите јадења кои биле нарачани) и komentar - kom_data (датата кога коментарот бил напишан) да не биде постара од 3 месеци.
  • Се сортира по sredna_ocena (Средна вредност на оцените) и komentar - rec_id
select 
	k.rec_id ,
	r.rec_ime ,
	avg(ocena) sredna_ocena,
	max(ocena) najvisoka_ocena ,
	min(ocena) najniska_ocena,
	min(kom_data) data_na_posleden_komentar
from komentari k 
	left join recepti r on
		r.rec_id = k.rec_id 
where (k.telefon, k.rec_id) in (select telefon, rec_id from so_koi sk) and
	k.kom_data > current_date - interval '3 months'
group by k.rec_id, r.rec_ime 
order by sredna_ocena desc, k.rec_id;
Last modified 4 months ago Last modified on 01/29/24 20:51:14
Note: See TracWiki for help on using the wiki.