teen ohjelmaa,jossa käytän tietokantaa(MYSQL) ja minulla on haku,jossa tulos on seuraavanlainen:
Nimi : arvo:
"vesa" 25.45
"vesa" 34.45
"pekka" 23.34
tämä pitäis saada siten ,että jokaiselta henkilöltä,tulisi vain suurin arvo.Olen yrittänyt ORDER BY ja GROUP BY komennoilla saada ne saamaan hakuun vai kannattaisiko lukea tiedot ensin johonkin temppi-tauluun?
Nimi : arvo:
"vesa" 25.45
"vesa" 34.45
"pekka" 23.34
tämä pitäis saada siten ,että jokaiselta henkilöltä,tulisi vain suurin arvo.Olen yrittänyt ORDER BY ja GROUP BY komennoilla saada ne saamaan hakuun vai kannattaisiko lukea tiedot ensin johonkin temppi-tauluun?
Vastaukset 2
Vanhimmat
Jos koittaisit sisäkyselyä tuohon..
select t1.Nimi,
(select max(t2.arvo) from taulu t2
where t2.Nimi = t1.Nimi)
from taulu t1
SELECT nimi, MAX(arvo) AS suurin FROM xxx GROUP BY nimi ORDER BY suurin DESC
Toi hakee jokaiselle nimelle suurimman arvon, sekä järjestää tulokset arvon mukaan suurimmasta pienempään.
Alikyselyt hitaampia, joten niitä ei kannata käyttää jos tuloksen saa muutenkin. Sekä Vertin ehdotelma ei tollasenaan toimisi halutulla tavalla.