Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Korisnik(k_ime, ime, prezime, tip, pretplata, datum_reg, tel_broj, email)
- Premium_korisnik(k_ime*, datum, procent_popust)
- Profil(k_ime*, ime, datum)
- Video_zapis(naslov, jazik, vremetraenje, datum_d, datum_p)
- Video_zapis_zanr(naslov*, zanr)
- Lista_zelbi(naslov*, k_ime*, ime*)
- Preporaka(ID, k_ime_od*, k_ime_na*, naslov*, datum, komentar, ocena)
- 1) Да се вратат имињата и презимињата на сите премиум корисници кои
- препорачале видео запис со времетраење подолго од 2 часа и за кој
- оставиле оцена поголема или еднаква на 4, подредени според датумот
- на регистрација во растечки редослед (времетраењето се чува во
- минути)
- 2) Да се вратат корисничкото име и бројот на видео записи кои му биле
- препорачани на корисникот кој дал најголем број на препораки.
- 3) За секој профил да се врати името на профилот и просечната оцена на
- видео записите во листата на желби асоцирана со тој профил.
- (Просечната оцена на секој видео запис се пресметува од сите оцени за
- тој видео запис).
- 4) Да се вратат жанровите заедно со бројот на препораки со коментар што
- го содржи зборот „interesting“, подредени според бројот на препораки
- во опаѓачки ред.
- 5) Да се врати список со насловите на видеата, времетраењето и бројот на
- препораки, за видеа кои се во листата на желби на најмалку два
- различни профили.
- 6) Да се вратат имињата на сите корисници кои имаат дадено препораки за
- видеа кои никој од нивните профили не ги има во листата на желби.
- */
- 1.
- SELECT DISTINCT K.ime,K.prezime
- FROM Korisnik K JOIN Premium_korisnik PK ON K.k_ime=PK.k_ime JOIN Preporaka PR ON PK.k_ime=PR.k_ime_od JOIN Video_zapis VZ ON PR.naslov=VZ.naslov
- WHERE VZ.vremetraenje>120 AND PR.ocena>=4
- ORDER BY K.datum_reg
- 2.
- WITH Preporaki_po_korisnik AS (SELECT k_ime_od,COUNT(PR.ID) AS broj_preporaki
- FROM Korisnik K JOIN Preporaka PR ON PR.k_ime_od=K.k_ime
- GROUP BY k_ime_od),
- Max_preporaki AS (SELECT MAX(PPK.broj_preporaki) AS max
- FROM Preporaki_po_korisnik PPK),
- Max_preporaki_korisnici AS (SELECT k_ime_od
- FROM Preporaki_po_korisnik PPK,Max_preporaki MP
- WHERE PPK.broj_preporaki=MP.max)
- SELECT MPK.k_ime_od AS k_ime, COUNT(ID) AS broj_preporaki
- FROM Max_preporaki_korisnici MPK JOIN Preporaka ON MPK.k_ime_od=Preporaka.k_ime_na
- GROUP BY MPK.k_ime_od
- 3.
- SELECT ime,AVG(temp_ocena) AS po_profil
- FROM (SELECT DISTINCT P.ime,AVG(ocena) AS temp_ocena
- FROM Profil P JOIN Lista_zelbi LZ ON LZ.ime=P.ime JOIN Preporaka PR ON PR.naslov=LZ.naslov
- GROUP BY P.k_ime,PR.naslov)
- GROUP BY ime
- 4.
- SELECT VZZ.zanr,COUNT(komentar) AS broj_komentari
- FROM Video_zapis_zanr VZZ JOIN Preporaka PR ON VZZ.naslov=PR.naslov
- WHERE komentar LIKE '%interesting%'
- GROUP BY VZZ.zanr
- ORDER BY broj_komentari DESC
- 5.
- WITH Mutual_preporaki AS (SELECT VZ.naslov AS naslov,COUNT(P.ime) AS broj_profili
- FROM Video_zapis VZ JOIN Lista_zelbi LZ ON VZ.naslov=LZ.naslov JOIN Profil P ON LZ.ime=P.ime
- GROUP BY VZ.naslov
- HAVING COUNT(P.ime)>1)
- SELECT MP.naslov,VZ.vremetraenje,COUNT(P.ID) AS broj_preporaki
- FROM Mutual_preporaki MP JOIN Video_zapis VZ ON MP.naslov=VZ.naslov JOIN Preporaka P ON VZ.naslov=P.naslov
- GROUP BY MP.naslov
- 6.
- WITH Korisnici_zelbi AS (SELECT DISTINCT P.k_ime AS k_ime,LZ.naslov AS naslov
- FROM (Profil P JOIN Lista_zelbi LZ ON LZ.k_ime=P.k_ime) JOIN Video_zapis VZ ON LZ.naslov=VZ.naslov),
- Korisnici_nezelbi AS (SELECT DISTINCT KZ.k_ime AS k_ime,VZ.naslov AS naslov
- FROM Korisnici_zelbi KZ,Video_zapis VZ
- WHERE VZ.naslov NOT IN(SELECT naslov FROM Korisnici_zelbi))
- SELECT KN.k_ime
- FROM Korisnici_nezelbi KN JOIN Preporaka P ON P.k_ime_od=KN.k_ime AND P.naslov=KN.naslov
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement