Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Procentualni Query uvijek izbaci nulu (0)?!?!

[es] :: Baze podataka :: Procentualni Query uvijek izbaci nulu (0)?!?!

[ Pregleda: 2585 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djblade

Član broj: 7290
Poruke: 459
*.rudolfinum.sth.ac.at.



+1 Profil

icon Procentualni Query uvijek izbaci nulu (0)?!?!28.03.2007. u 06:27 - pre 207 meseci
Imam sljedeci query sa kojim pokusavam da izracunam procente

SELECT ((SELECT COUNT(value) FROM exponate WHERE value >=30 AND value <=50)/COUNT(e.value))*100 FROM exponate e

problem je sto uvijek dobijem 0 ?!?!?!

kada rastavim query dobijem sljedece vrijednosti

SELECT COUNT(value) FROM exponate WHERE value >=30 AND value <=50 ---- 1

COUNT(e.value) ---- 4


treba da dobijem
(1/4)*100 = 25

ali zastoo ne dobijammm? :D

hvala i pozdravi
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Procentualni Query uvijek izbaci nulu (0)?!?!28.03.2007. u 07:29 - pre 207 meseci
Treba ti nesto poput
Code:

SELECT (SELECT COUNT(value)
          FROM exponate
         WHERE value >= 30
           AND value <= 50)
       /
       (SELECT COUNT(value)
          FROM exponate)
       *
       100
  FROM neka_tabela_sa_samo_jednim_redom
Za Oracle neka_tabela_sa_samo_jednim_redom = DUAL
Za PostgreSQL moze da se izosatavi kompletna FROM klauzula

Sledeci kod je uopsten, koristi privremenu tabelu i radi na vecini sistema:
Code:

SELECT SUM(t.b) / SUM(t.i) * 100
  FROM (SELECT COUNT(value) AS b, 0 AS i
          FROM exponate
         WHERE value >= 30
           AND value <= 50
         UNION ALL
        SELECT 0 AS b, COUNT(value) AS i
          FROM exponate
       ) AS t

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
212.200.179.*



Profil

icon Re: Procentualni Query uvijek izbaci nulu (0)?!?!28.03.2007. u 12:11 - pre 207 meseci
Imam ovako varijantu:
+---------------+
|godina|vrednost|
+---------------+
|2006 | 1000,00|
|2006 | 1200,00|
|2006 | 1250,00|
|2006 | 2000,00|
|2006 | 800,00|
|2006 | 2500,00|
|2006 | 2300,00|
|... | |
|2006 | 1850,00|
+---------------+

treba mi varijanta da se sabere kolona "vrednost" i da se za svaku kolonu
napravi jos jedna gde ce biti prikazan % od ukupne sume?

+---------------+--------+
|godina|vrednost|procenat|
+---------------+--------+
|2006 | 1000,00|
|2006 | 1200,00|
|2006 | 1250,00|
|2006 | 2000,00|
|2006 | 800,00|
|2006 | 2500,00|
|2006 | 2300,00|
|... | |
|2006 | 1850,00|
+---------------+
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Procentualni Query uvijek izbaci nulu (0)?!?!28.03.2007. u 17:50 - pre 207 meseci
@ Djblade: Hoce ponekad kad imas dva INTEGER podatka, intA <i ntB, pa podelis (intaA/intB ) da dobijes nulu (zero, 0), ako je rezultat manji od jedinice. Onda moze da pomogne ili nesto kao CAST (intaA as FLOAT), ili da u racunskoj operaciji upotrebis decimalan broj, na primer (1.0*intA/intB). Primeti da sam stavio 1.0 a ne 1, to bi trebalo da 'decimalizuje' ceo rezultat.

 
Odgovor na temu

djblade

Član broj: 7290
Poruke: 459
*.rudolfinum.sth.ac.at.



+1 Profil

icon Re: Procentualni Query uvijek izbaci nulu (0)?!?!28.03.2007. u 20:08 - pre 206 meseci
Citat:
Zidar: @ Djblade: Hoce ponekad kad imas dva INTEGER podatka, intA <i ntB, pa podelis (intaA/intB ) da dobijes nulu (zero, 0), ako je rezultat manji od jedinice. Onda moze da pomogne ili nesto kao CAST (intaA as FLOAT), ili da u racunskoj operaciji upotrebis decimalan broj, na primer (1.0*intA/intB). Primeti da sam stavio 1.0 a ne 1, to bi trebalo da 'decimalizuje' :-) ceo rezultat.


dobra ideja :D

pokusao sam
SELECT (1.0*(SELECT COUNT(value) FROM exponate WHERE value >=30 AND value <=50)/COUNT(e.value))*100 FROM exponate e
i dobijem 20.0 iako bi trebao dobiti 25.0?!?!

pokusat cu veceras u ovo
Citat:
inherited: Imam ovako varijantu:

+---------------+--------+
|godina|vrednost|procenat|
+---------------+--------+
|2006 | 1000,00|
|2006 | 1200,00|
|2006 | 1250,00|
|2006 | 2000,00|
|2006 | 800,00|
|2006 | 2500,00|
|2006 | 2300,00|
|... | |
|2006 | 1850,00|
+---------------+


hvala i pozdravi
 
Odgovor na temu

[es] :: Baze podataka :: Procentualni Query uvijek izbaci nulu (0)?!?!

[ Pregleda: 2585 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.