Professional Documents
Culture Documents
Select SUM As From Group BY
Select SUM As From Group BY
8. Прикажи три датума у којима је остварено највише изостанака (уз датум приказати и број
изостанака у колони под називом broj_izostanaka).
HAVING
Када желимо да филтрирамо податке пре груписања, користимо клаузулу WHERE.
Када желимо да филтрирамо податке након груписања помоћу GROUP BY и
израчунавања агрегатних статистика, користимо клаузулу HAVING.
4. Прикажи сва одељења четвртог разреда у којима има бар четири ученика рођена
2004. године.
SELECT razred, odeljenje
FROM ucenik
WHERE razred = 4 AND datum_rodjenja between “2004-01-01” and “2004-12-31”
GROUP BY razred, odeljenje
HAVING COUNT(*) >= 2
5. Приказати све датуме за које постоје бар два нерегулисана изостанка (уз датум приказати и
број нерегулисаних изостанака).
6. Прикажи сва одељења четвртог разреда у којима има бар 15 дечака (приказати само разред
и одељење).
SELECT round(avg(ocena),2)
FROM ocena
WHERE vrsta="писмени задатак" and id_predmet=1 and datum="2020-10-15"
GROUP BY vrsta, id_predmet,datum;
3. За сваки датум у ком је направљен неки изостанак одредити укупан број направљених
изостанака (колону назвати broj_izostanaka).
7. За сваки месец у години y ком је неки ученик добио неку јединицу - приказати број
јединица које су ученици добили током тог месеца (колоне назвати mesec и broj).
8. Прикажи датуме у којима има неоправданих изостанака, али да је то строго мање од 10 (уз
сваки датум приказати и број изостанака).
9. Приказати све називе предмета који се предају током неколико разреда (приказати само
називе).
SELECT naziv
FROM predmet
GROUP BY naziv
HAVING count(razred)>1;
JOIN…ON…
1. За сваки изостанак начињен 14. маја 2021. године, приказати име и презиме
ученика, редни број часа и статус изостанка.
SELECT ime, prezime, cas, status
FROM izostanak i
JOIN ucenik u ON i.id_ucenik = u.id
WHERE datum = '2021-05-14';
3. Приказати све оцене у читљивом формату (тако да се виде име и презиме ученика и
назив предмета)
SELECT p.naziv, u.ime, u.prezime, o.ocena, o.datum, o.vrsta
FROM ocena o
JOIN predmet p ON o.id_predmet = p.id
JOIN ucenik u ON o.id_ucenik = u.id;
5. Приказати све парове близанаца (под близанцима ћемо подразумевати све парове
ученика који се исто презивају и имају исти датум рођења).
SELECT ucenik1.ime as ime1, ucenik2.ime as ime2, ucenik1.prezime
FROM ucenik as ucenik1
JOIN ucenik as ucenik2 ON ucenik1.datum_rodjenja=ucenik2.datum_rodjenja and
ucenik1.prezime=ucenik2.prezime
WHERE ucenik1.id<ucenik2.id;
6. Приказати све регулисане изостанке у читљивом формату (у ком се види име и презиме
ученика и датум, час и статус изостанка).
SELECT ucenik.ime,ucenik.prezime,datum,cas,status
FROM izostanak
JOIN ucenik ON izostanak.id_ucenik=ucenik.id
WHERE status="оправдан" or status="неоправдан";
7. За сваког ученика приказати списак предмета које похађа (свака врста треба да садржи име
и презиме ученика, разред и одељење у које иде и назив једног предмета).
SELECT ime,prezime,predmet.razred,odeljenje,predmet.naziv
FROM ucenik
JOIN predmet ON ucenik.razred=predmet.razred
12. Приказати просечну оцену (заокружено на две децимале) из математике за свако одељење.
14. Приказати у читљивом формату све оцене на контролним вежбама ученика одељења I2.
Приказати име и презиме ученика, назив предмета, датум добијања оцене и оцену која је добијена.
15. Приказати просечну оцену на сваком писменом задатку у сваком одељењу (рачунати само
писмене задатке које је истовремено радило бар 25 ученика). Приказати разред, одељење, назив
предмета, датум писменог, просечну оцену и број ученика који су радили писмени.
SELECT
ucenik.razred,ucenik.odeljenje,predmet.naziv,ocena.datum,round(avg(ocena),2)
as prosek,count(ucenik.id) as broj_ucenika
FROM ocena
JOIN ucenik ON ocena.id_ucenik=ucenik.id
JOIN predmet ON ocena.id_predmet=predmet.id
WHERE vrsta="писмени задатак"
GROUP BY ucenik.razred,ucenik.odeljenje,predmet.naziv
HAVING broj_ucenika >=25;
16. За сваки предмет приказати месечни преглед броја петица (списак уредити по називима
предмета у азбучном редоследу, а за сваки предмет, по месецима, растуће). Приказати назив
предмета, разред, месец и број петица.
17. Ситуација је алармантна када ученици неког одељења у неком месецу направе 5 или више
неоправданих изостанака. Приказати све такве случајеве. Приказати разред, одељење, месец и број
неоправданих изостанака.
18. За сваког ученика приказати просечну оцену из сваког предмета за који је добио бар две
оцене (приказати имена и презимена ученика, називе предмета и просечне оцене заокружене на
две децимале).
20. За сваког ученика приказати број оцена из рачунарства и информатике (за ученике који нису
још добили оцене из тог предмета приказати нулу).