Topic: rikiavimas pagal du stulpelius

Sveiki,

yra lentele:


vp         |       suma       |      vt             |
jonas     |          49              1,2,1,2,,1   |
petras   |           49        |    1,2,3,2,,1   |
maryte  |          30         |    5,6,7,8,,9   |

Kaip uzklausoje parasyti rikiavimas, kad rikiuotu pagal stulpeli suma ir vt, jei eiluciu sumos lygios, kaip siuo atveju jono ir petro, tada ziurima i stulpelio vt eilutes ir rezultatas isrikiuojamas pas ka daugiau mazesniu skaiciu tarp kableliu. Ar tai is viso imanoma padaryt tik per uzklausa? Rezultatas turetu buti:

1. jonas
2. petras
3. maryte

Re: rikiavimas pagal du stulpelius

Paprastai neišeis padaryti, nes stulpelio vt duomenys yra nestandartinio tipo, todėl nėra standartinių priemonių, kaip atskirti, kuri reikšmė yra "didesnė", o kuri "mažesnė". Galbūt pavargus būtų galima parašyti funkciją/procedūrą, kuri į papildomą stulpelį (tarkim vt_tmp) surašytų vt skaičių sumą.. tada galbūt rikiuojant pagal tą papildomą stulpelį ir būtų gaunamas norimas rezultatas.

Re: rikiavimas pagal du stulpelius

Aisku, aciu uz atsakyma

Re: rikiavimas pagal du stulpelius

o kaip apskritai reikia rikiuoti pagal pvz. 2 stulpelius, jei rikiuojant pagal vieną, kartojasi įrašai ir reikia rikiuo pagal kitą. Pagal vieną rikiuot tai reikia taip "... ORDER BY stulpelis ASC|DESC ...". kaip įtraukt antrąjį stulpelį? o įmanoma dar daugiau, jei taip, tai kiek max?

Su sąlyga, kad šūdo nebus...

5 (edited by zygis 2008-06-12 14:07:04)

Re: rikiavimas pagal du stulpelius

ORDER BY stulpelis1 ASC|DESC, stulpelis2 ASC|DESC it t.t.                                     (dar gal stulpelis1, stulpelis2   ASC|DESC)  // nepamenu kuris tiksliai veike :)
kartais pravartu GROUP BY naudot, cia labai nuo situacijos priklauso...

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: rikiavimas pagal du stulpelius

... tai per kablelį juos atskiri:

.. ORDER BY stulpelis1 DESC, stulpelis2 ASC, stulpelis3 DESC

Pagal idėja jų gali naudoti tiek kiek reikia. Koks fizinis limitas nežinau, bet tikriausiai ir logikos nėra kalbėti apie rikiuojamų stulpelių skaičių didesnį negu išgaunamų.

Re: rikiavimas pagal du stulpelius

zygis wrote:

kartais pravartu GROUP BY naudot, cia labai nuo situacijos priklauso...

na GROUP BY labiau naudojama, kai atliekamos kažkokios sudetingesnės duomenų "rokiruotės", o ne paprastas rikiavimas manau.

dekui už info, tikrai nemaniau, kad taip paprastai :)

Su sąlyga, kad šūdo nebus...