Autor Zpráva
IdemeNaHavaj
Profil
Mám
SELECT COUNT(*) AS `Rows`, `title`, SUM(g) as cisloSum
potom niečo ako
$a = Rows;
$b = cisloSum;

celé to vyťahujem cez while(sql){ $a =.. atď ako vyššie a teraz potrebujem nejako zmeniť ten SQL aby sa to zoradilo podla čísla, ktoré je výsledok čísiel $b-$a?

Teda napr. vysledky ked su
1
4
-2
8

Tak zoradenie portebujem

-2
1
4
8
juriad
Profil
A zkoušel jsi to neprostší, totiž:
ORDER BY cisloSum - Rows
?

Řazení bere nikoli jen název sloupečku, ale jakýkoli výraz.
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
IdemeNaHavaj
Profil
Skusal som cisloSum - Rows:
MySQL said: 
#1247 - Reference 'cisloSum' not supported (reference to group function)  
juriad
Profil
Tak v tom případě to prostě obal dalším selectem:
SELECT * FROM (tvůj současný select bez řazení) x ORDER BY cisloSum - Rows
Tori
Profil
Když od sumy odečítáte počet řádků, je to totéž, jako od jednotlivých čísel odečítat jedničku na každém řádku:
select sum(g - 1) as razeni
from tabulka
group by neco
order by razeni
edit: nebude to fungovat v případě, kdy počet řádků čtete z jiné tabulky (připojené LEFT joinem), než sumu hodnot. Pak použijte to juriadovo řešení.
mimochodec ↓: ;-) dík
IdemeNaHavaj
Profil
Vdaka
mimochodec
Profil
Tori:
Když od sumy odečítáte počet řádků, je to totéž, jako od jednotlivých čísel odečítat jedničku na každém řádku:

A to je přesně to, co člověka nikde nenaučí, k tomu je potřeba programátorské myšlení a talent. Skládám poklonu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: