[ bloker @ 13.05.2009. 12:56 ] @
U bazi imam podatke koji oznacavaju broj racuna i izgledaju ovako:
Code:

816 / 1
816 / 2
817
818 / 1
...
1017 / 1
1017 / 2

E sada ovdje mi treba minimalni i maksimalni broj i koliko ih ima ukupno. S tim da se "816 / 1" i "816 / 2" broji kao jedan...
kao minimalni treba da dobijem 816, a maksimalni 1017.
[ Nikola Poša @ 13.05.2009. 14:23 ] @
Probaj ovako:
Code:

SELECT DISTINCT CAST(IF(LOCATE(' ', broj)=0, broj, SUBSTR(broj, 1, LOCATE(' ', broj)-1)) AS UNSIGNED) AS br
FROM racuni
ORDER BY br ASC

Tako ćeš dobiti:
Code:

816
817
818
1017
[ bogdan.kecman @ 13.05.2009. 14:47 ] @
http://dev.mysql.com/doc/refma...t-functions.html#function_cast

SELECT COUNT(*) AS koliko_ukupno, MAX(CAST(kolona AS SIGNED)) AS najveci, MIN(CAST(kolona AS SIGNED)) AS najmanji FROM t1;


Ovo svaki put radi TABLE SCAN dakle ovaj upit procita SVE slogove iz tabele da bi ovo izracunao i nikakav index ti nece pomoci. Ako mozes da promenis dizajn baze - promeni posto ovo ovako ne valja.
[ Shinhan @ 14.05.2009. 07:18 ] @
Zašto mora da postoji polje u tabeli u kojem piše "816 / 1" tipa VARCHAR?
Bolje napravi dva polja, oba integer za posebno levi i desni deo. Ako treba možeš napraviti ta dva polja da budu primarni ključ.
[ bloker @ 14.05.2009. 09:30 ] @
Citat:
bogdan.kecman
SELECT COUNT(*) AS koliko_ukupno, MAX(CAST(kolona AS SIGNED)) AS najveci, MIN(CAST(kolona AS SIGNED)) AS najmanji FROM t1;


ovo rjesenje radi ok kada treba da pronadje najveci i najmanji.. ali ukupno mi ne radi ok.. tj on ih prebroji sve "816 / 1", "816 / 2" broji kao 2 elementa.. a treba mi da ih broji kao jedan..
[ bogdan.kecman @ 14.05.2009. 11:40 ] @
Code:
select count(distinct(CAST(kolona AS SIGNED))) from t1


jedino neces moci sve u istom upitu nego jedan po jedan
[ bloker @ 14.05.2009. 11:48 ] @
radi sada ok.
Hvala ;)
[ bogdan.kecman @ 14.05.2009. 12:10 ] @
samo ti se cini da radi :( ... ako imas par desetina slogova u bazi to je ok, ali za iole realne podatke taj query ce ti zabosti server :( ... to je table scan i to najgore vrste .. redizajniraj tabelu kako znas i umes ako ovakav upit izvrsavas cesce od jednom u 2 godine !!