[ Orome @ 17.02.2011. 13:49 ] @
imam sledecu situaciju : select fakultet,predmet,student,min(ocena) as ocena from tabela group by student
kako da dobijem sve najmanje ocene po studentu bez obzira na predmet, ako je dobio minimalnu ocenu (istu minimalnu) iz vise predmeta hocu sve redove toga iz tabele. s tim da ne znam koja je najmanja ocena koju moze dobiti, ovaj select gore je samo primer. znaci treba mi sledece:

student ocena predmet
1 2 1
1 2 2
2 1,2 1
3 0,8 2
4 0,3 3
5 4 10
5 4 11
5 4 15

[Ovu poruku je menjao Orome dana 17.02.2011. u 15:07 GMT+1]
[ djoka_l @ 17.02.2011. 14:07 ] @
Pogledaj http://www.elitesecurity.org/t422613-0#2812317
[ Orome @ 17.02.2011. 14:18 ] @
meni ne treba order meni treba da uopste izvuce tacan podatak. ne mogu staviti group by student jer ce uzeti samo njegovu 1 najmanju ocenu. ako stavim group by predmet,student izbacice za sve predmete sve ocene pa ni to ne odgovara itd.
[ bogdan.kecman @ 17.02.2011. 14:46 ] @
ja ne kontam sta hoces a ne kontam ni kako ti izgledaju tabele ... ako ne dodas malo vise teksta tesko da ce neko da gleda u staklenu kuglu da bi svatio sta hoces...

sta je rezultat koji trazis? student, najmanja ocena? sta znaci "sve najmanje ocene po studentu bez obzira na predmet" ??? da li imas ideju na koliko nivoa ova recenica nema smisla nekome ko trenutno ne radi na tvom projektu...

ajde lepo izbroj do deset pa polako
- kako ti izgledaju tabele (sve sa lepo create table ovo ono)
- neki dummy data (insert into ovo ono)
- sta tacno hoces da dobijes kao rezultat + kako hoces da taj rezultat izgleda ako se upit pusti na dummy data koji ces obezbediti

vrlo verovatno ces vec u toku pripreme valjanog pitanja doci do resenja kako da resis stvar
[ Orome @ 18.02.2011. 08:24 ] @
@bogdan.kecman imam jednu tabelu, u kojoj su mi polja (fakultet,predmet,student,ocena). jasno ti je sta cuvam u njoj, kljuc je fakultet,predmet,student. znaci, trebaju mi najmanje ocene svih studenata bez obzira iz kog su predmeta. Ne znam koja je najmanja ocena pa tako ne mogu reci 'select fakultet,predmet,student,ocena from tabela where ocena=5'. Ovako sam probao 'select fakultet,predmet,student,min(ocena) as ocena from tabela group by student'. navedeni select ce mi vratiti samo jednu ocenu za svakog studenta jer ce grupisati po studentu. ako je student iz predmeta 1 i 2 dobio istu najmanju ocenu(najmanju od njegovih ocena) npr. 0,7 zelim ovakav rezultat :
fakultet kao f, predmet p, student s, ocena o

f p s o
1 1 1 0,7
1 2 1 0,7

kao sto rekoh ako stavim group by student on ce mi vratiti samo prvi navedeni red,meni trebaju oba. sada, znam da ima having koji se koristi kao zadnji parametar selecta ali kako sam citao having radi sa agragatnim funkcijama ali poredjenje. npr 'having min(ocena)<5' medjutim ja ne znam koja je minimalna, tj razlikuje se od studenta do studenta. znam da nije do group-a jer je nemoguce njime resiti problem a i nemam drugih ideja.

ne znam kako bolje da objasnim, to je sve. i jos uvek ne znam resenje, borim se vec 2 dana, i mislim da definitivno ima lakse resenje od komada koji sam napisao, ali radi jako sporo.
[ djoka_l @ 18.02.2011. 08:37 ] @
Ah, dao sam ti primer iz druge teme i ti ništa nisi ukapirao....

Prvo, ovo ne može:

Code (sql):

SELECT fakultet,predmet,student,MIN(ocena) AS ocena
FROM tabela
GROUP BY student
 


U group by klauzuli moraju da budu sva polja koja nisu agregatne funkcije.
Međutim ovo može:

Code (sql):

SELECT student,MIN(ocena) AS ocena
FROM tabela
GROUP BY student
 


A sada iskoristiš ovaj upit da dobiješ sve predmete iz kojih student ima minimalnu ocenu:

Code (sql):

SELECT s.fakultet, s.predmet, s.student, s.ocena
FROM tabela s, (
       SELECT student,MIN(ocena) AS ocena
       FROM tabela
       GROUP BY student ) m
WHERE s.student = m.student
   AND s.ocena = m.ocena
 
[ Orome @ 18.02.2011. 09:23 ] @
pa ti si stvarno kralj. nisam odmah skontao, hvala.
[ VladaSu @ 18.02.2011. 12:52 ] @
Pogledaj naredbu group_concat, mozda ti brze bude radila.