Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 2.665 pregleda

Najnovija ↓

Brojanje podataka tipa varchar 13.05.2009. u 13:56 · pre 212 meseci #1
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.
Re: Brojanje podataka tipa varchar 13.05.2009. u 15:23 · pre 212 meseci #2
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
Re: Brojanje podataka tipa varchar 13.05.2009. u 15:47 · pre 212 meseci #3
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.
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Brojanje podataka tipa varchar 14.05.2009. u 08:18 · pre 212 meseci #4
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č.
Potpis
"Common sense is not so common." - Voltaire
Re: Brojanje podataka tipa varchar 14.05.2009. u 10:30 · pre 212 meseci #5
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..
Re: Brojanje podataka tipa varchar 14.05.2009. u 13:10 · pre 212 meseci #8
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 !!
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme