Onko postgeSQL:ssa joku LIMIT toiminto niin kuin MySQL:ssa ?
Miten saa taulukosta esimerkisi suurin arvo, jos ei ole limitiä?
Miten saa taulukosta esimerkisi suurin arvo, jos ei ole limitiä?
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
LIMIT..OFFSET:
LIMIT Clause, Postgre 7.x
LIMIT { count | ALL } [ { OFFSET | , } start ]
OFFSET start
Kyselyllä
select max(luku) from taulu
saat suurimman luku-kentän arvon.
vastaavasti min(luku) pienin. Toimii int, char, date yms kenttiin.
Kyllä saa, mutta ei saa saman monikon muita attribuutteja. Esim. et saa 'nimi' attribuuttia, jos max:illa otat vaikka 'pituuden'. Eli saat selville mikä on relaation pisin arvo, muttei kuka se pisin henkilö on. Vaan tarvitaan toinen SELECT haku, nimihakua varteen.
Limitilla tämä onnistuu helposti, DESC SORTilla, ja LIMIT 1,1:lla.
Sql-kysely voi sisältää myös sisäkkäisiä kyselyjä. Joten se onnistuu näin:
Select max(Pituus),(select HenkilönNimi from Henkilöt Aputaulu where Henkilöt.Henkilönro=Aputaulu.Henkilönro)
From Henkilöt
Eli sulkujen sisällä on toinen kysely, joka hakee henkilön nimen. Toisessa kyselyssä from-sanan jälkeen on "Henkilöt Aputaulu", jolloin kyseisessä kyselyllä taulun nimi on Aputaulu, ettei se sekoitu ensimmäisen kyselyn tauluun Henkilö. Ja oletan, että kullakin henkilöllä on yksilöity numero nimellä Henkilönro.
Tämä on hitaampi tapa kuin Limit, koska pitää tehdä kaksi hakua.
Myös, mitä jos on kaksi samanlaista max-arvoa? Limitilla onnistuisi lajittelu sekä arvon että vaikka päivämäärän mukaan, ja saa aina vain yhden arvon.