Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

agregatna funkcija

[es] :: MySQL :: agregatna funkcija

[ Pregleda: 2886 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Orome
programer

Član broj: 273201
Poruke: 115
*.teol.net.



+1 Profil

icon agregatna funkcija17.02.2011. u 13:49 - pre 160 meseci
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]
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: agregatna funkcija17.02.2011. u 14:07 - pre 160 meseci
Pogledaj http://www.elitesecurity.org/t422613-0#2812317
 
Odgovor na temu

Orome
programer

Član broj: 273201
Poruke: 115
*.teol.net.



+1 Profil

icon Re: agregatna funkcija17.02.2011. u 14:18 - pre 160 meseci
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.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: agregatna funkcija17.02.2011. u 14:46 - pre 160 meseci
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
 
Odgovor na temu

Orome
programer

Član broj: 273201
Poruke: 115
*.teol.net.



+1 Profil

icon Re: agregatna funkcija18.02.2011. u 08:24 - pre 160 meseci
@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.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: agregatna funkcija18.02.2011. u 08:37 - pre 160 meseci
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
 
 
Odgovor na temu

Orome
programer

Član broj: 273201
Poruke: 115
*.teol.net.



+1 Profil

icon Re: agregatna funkcija18.02.2011. u 09:23 - pre 160 meseci
pa ti si stvarno kralj. nisam odmah skontao, hvala.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: agregatna funkcija18.02.2011. u 12:52 - pre 160 meseci
Pogledaj naredbu group_concat, mozda ti brze bude radila.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

[es] :: MySQL :: agregatna funkcija

[ Pregleda: 2886 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.