Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL GROUP BY?

makumaku [04.09.2011 10:36:57]

#

En nyt ihan heti keksinyt että miten mysql-lauseessa saisi ryhmiteltyä lukuja tiettyjen arvojen mukaan vaikka kymmenen ryhmiin.
Yksinkertainen esimerkki, eli on taulu luvut, ja siinä yksi kenttä int luku.
luku
3
26
15
17
9
2
Miten saan haettua montako lukua kuuluu välille 1-10, montako välille 11-20, jne..?
Tietenkin parilla eri haulla tai sitten koodissa laskemalla tämä on helppoa, mutta onnistuuko mysql:ssä yhdellä selectillä?

Antti Laaksonen [04.09.2011 10:50:43]

#

Onnistuu esimerkiksi seuraavasti:

SELECT CONCAT(FLOOR((luku-1)/10)*10+1,
              '-',
              FLOOR((luku-1)/10)*10+10) lukuvali,
       COUNT(luku) maara
FROM luvut
GROUP BY FLOOR((luku-1)/10);

Ideana on ryhmitellä luvut sen mukaan, mikä niiden suuruus on jaettuna 10:llä pyöristettynä alaspäin.

makumaku [04.09.2011 12:25:43]

#

OK, kiitos.
Mielenkiintoinen idea. Eipä ole tullut koskaan tuota mysql:n floor funkkaria käytettyäkään.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta