Novo

Forum kao aplikacija na telefonu

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

  • 4 odgovora
  • 3.625 pregleda

Najnovija ↓

Procentualni Query uvijek izbaci nulu (0)?!?! 28.03.2007. u 07:27 · pre 238 meseci #1
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
Re: Procentualni Query uvijek izbaci nulu (0)?!?! 28.03.2007. u 08:29 · pre 238 meseci #2
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
Potpis
"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
Re: Procentualni Query uvijek izbaci nulu (0)?!?! 28.03.2007. u 13:11 · pre 238 meseci #3
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|
+---------------+
Re: Procentualni Query uvijek izbaci nulu (0)?!?! 28.03.2007. u 18:50 · pre 238 meseci #4
@ 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.

Re: Procentualni Query uvijek izbaci nulu (0)?!?! 28.03.2007. u 21:08 · pre 238 meseci #5
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
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme