Brojanje pod uvjetom

dakle, imam bazu u kojoj kolna “status” moze imati 4 razlicite vrijednosti…

moram prebrojati koliko statusa ima rezltat a, koliko rezultat b, koliko rezultat c, koliko rezultat d…

mogu to napraviti sa 4 razlicita uputa, gdje cu mjenjati WHERE status=a

no čini mi se kao Težak način za takvo nešto…dakle 4 puta

sql=select COUNT(status) FROM tablica WHERE status=xy

i rezultat COUNT(status) spremam u 4 razlicite varijavle

druga opcija, puno bolja IMHO je da grupiram rezultate prema statusu
dakle:

select count(status), status FROM tablica GROUP BY status

nebe sad zanim kod dalje, kako da preko ovg upita u 4 razlicite varijable upisem rezultate i kako cu raspoznati koji su a, koji su b itd…

A sada puno “možda” :slight_smile:

Možda ima nešto bolje ali nisam siguran da to možeš riješiti bez kursora (MS SQL Server) i par if-ova.

Treba sagledati cjelinu, možda ti varijable nisu potrebne i možda se može riješiti sa temp tablicom.

Procjeni, možda :slight_smile: ti je brže to preko 4 zasebna selecta nego prtljati s nečim drugim.

pa rezultat upita “select count(status), status FROM tablica GROUP BY status” je relacija koja u svakom retku ima “ime statusa” i broj kolko tih statusa ima, ne shvacam u cemu je tocno problem?
to prebacis u nekakav niz/matricu i bok

@Dabrorius
predpostavio sam da je moguce to rijesiti preko grupiranja, ali bas sam zapeo tu gdje si ti stao…tocnije, kako prebaciti rezultate u niz/matricu, tj. kasnije u 4 zasebne varijable

Nije bitno što je duže / kraće. Napravi benchmark i vidjet ćeš što je brže (a to je i cilj).

[quote=“hori”]@Dabrorius
predpostavio sam da je moguce to rijesiti preko grupiranja, ali bas sam zapeo tu gdje si ti stao…tocnije, kako prebaciti rezultate u niz/matricu, tj. kasnije u 4 zasebne varijable[/quote]

pa to je stvar programskog jezika u kojem radis a ne baza podataka
ako si u PHPu, prodji sa mysql_fetch_array

svaki put ce ti vratiti niz koji ce predstavljat jedan redak u toj tablici

ma sad me sram sto sam uopce otvorio ovu temu…

rijesenje bi bilo nesto poput ovoga

while ($row=mysql_fletch_array($result))
{
//i sad ide serija if-ova bez kojih bi moje pitanje bilo na mjestu…ovako je to zapravo osnova
if($row[‘status’]=a) $a=$row[‘COUNT(status)’]
if($row[‘status’]=b) $b=$row[‘COUNT(status)’]
if($row[‘status’]=c) $c=$row[‘COUNT(status)’]

}

na kraju mi se cini da bi cetri zasebna querya bila brze i jednostavnije rjesenje, al bez benchmark ništa :kriza:

Cini ti se, pogotovo ako imas index nad statusom. :wink:

I btw, imas sintaksnih gresaka u svom kodu (stringovi a, b, c nisu u navodnicima, to ce ti proc kao “warning”, a ne “fatal error”, ali bi svejedno to trebao ispraviti).

[quote=“ivan.skugor”]Cini ti se, pogotovo ako imas index nad statusom. :wink:

I btw, imas sintaksnih gresaka u svom kodu (stringovi a, b, c nisu u navodnicima, to ce ti proc kao “warning”, a ne “fatal error”, ali bi svejedno to trebao ispraviti).[/quote]

znam za greške…to sam nabrzaka pisao
ima i fletch :uaa:


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja