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ä?
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.
OK, kiitos.
Mielenkiintoinen idea. Eipä ole tullut koskaan tuota mysql:n floor funkkaria käytettyäkään.
Aihe on jo aika vanha, joten et voi enää vastata siihen.