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

sql problem!!!!!!!

[es] :: Baze podataka :: sql problem!!!!!!!

[ Pregleda: 4121 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Bojann
Zrenjanin

Član broj: 13255
Poruke: 217
*.dialup.neobee.net.



Profil

icon sql problem!!!!!!!23.03.2005. u 22:40 - pre 232 meseci
U pitanju je upit, dakle kako sastaviti sql kod za sledece:

tabela masina:


ime_masine, id,ispravnost(true/false),proizvodjac

Sad treba da rangiram proizvodjace po procentu ispravnosti masina. Primer:

1.proizvodjac1 4(ispravne) 1(neispravna) 80%
2.proizvodjac2 4 4 50%
3.proizvodjac3 2 3 40%

Kako?
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: sql problem!!!!!!!23.03.2005. u 23:36 - pre 232 meseci
Bilo mi dosadno, pa sam odlucio malo perverzije izvoditi ;)
Code:

CREATE TABLE masina(
id INT(4) NOT NULL AUTO_INCREMENT,
proizvodjac VARCHAR(50),
ime_masine VARCHAR(50),
ispravnost ENUM('true','false') NOT NULL,
PRIMARY KEY (id));

SELECT proizvodjac, SUM(CASE ispravnost WHEN true THEN 1 ELSE 0 END) AS "Ispravno", COUNT(*)-SUM(CASE ispravnost WHEN true THEN 1 ELSE 0 END) AS "Neispravno", CONCAT(((SUM(CASE ispravnost WHEN true THEN 1 ELSE 0 END)/COUNT(*))*100),"%") AS "%" FROM masina GROUP BY proizvodjac ORDER BY 3 DESC;


Cista perverzija :)
Ne preporucujem za svakodnevnu upotrebu.

Ah da, zaboravih dodati - ovo je testirano na MySQL 4.1.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

CandyMan

Član broj: 3420
Poruke: 147



+49 Profil

icon Re: sql problem!!!!!!!24.03.2005. u 09:34 - pre 232 meseci
Osnovno je da moraš da imaš dva upita. Prvi treba da ti da ukupan broj mašina za svakog proizvođača, a drugi broj ispravnih mašina za svakog proizvođača npr:
Q1:
Code:

select proizvodjac, count(*) ukupno
  from masine
group by proizvodjac;

Q2:
Code:

select proizvodjac, count(*) ukupno
  from masine
 where ispravna = TRUE
group by proizvodjac;

Q3:
Code:

select Q2.proizvodjac, round((Q2.ukupno/Q1.ukupno)*100,2)
  from Q1,Q2
 where Q2.prozvodjac = Q1.prozvodjac


Verovatno je u Q3 moguće Q1 i Q2 zameniti navedenim upitima da bi se dobio jedan upit, ali to već zavisi od platforme.

U prilogu je predlog rešenja u Access-u.
Nisam ni znao da znam dok nisam prob'o!
Prikačeni fajlovi
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: sql problem!!!!!!!24.03.2005. u 22:54 - pre 232 meseci
Nakon one perverzije, evo jedno normalnije rjesenje:
Code:

SELECT t1.proizvodjac, t1.ispravno, t2.neispravno, ROUND((t1.ispravno/(t1.ispravno+t2.neispravno))*100) AS "%"
FROM
(SELECT proizvodjac, COUNT(*) AS ispravno FROM masina WHERE ispravnost = true GROUP BY proizvodjac) AS t1,
(SELECT proizvodjac, COUNT(*) AS neispravno FROM masina WHERE ispravnost <> true GROUP BY proizvodjac) AS t2
WHERE t1.proizvodjac = t2.proizvodjac
ORDER BY 4 DESC;

Ustedio sam jedan COUNT(*) za ukupan broj masina. Radi na MySQL 4.1.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

CandyMan

Član broj: 3420
Poruke: 147



+49 Profil

icon Re: sql problem!!!!!!!25.03.2005. u 07:07 - pre 232 meseci
Uštedeo? Nisam baš siguran...
Nisam ni znao da znam dok nisam prob'o!
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: sql problem!!!!!!!25.03.2005. u 11:15 - pre 232 meseci
Ustvari, dodje na isto :) Radio COUNT(*) za neispravne masine, pa ih sabrao sa ispravnima, ili radio COUNT(*) za ukupan broj masina, pa od njega oduzeo broj ispravnih, da bih dobio broj neispravnih - na kraju je svejedno.

Ne rece nam Bojann da li mu pomazu ovi SQL izrazi ... ?
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: sql problem!!!!!!!26.03.2005. u 00:24 - pre 232 meseci
Pa nije bas isto. Mislim da je Stripy-evo prvo resenje najbolje sto se tice performansi (jedan SELECT sa GROUP BY)
Owl
 
Odgovor na temu

Bojann
Zrenjanin

Član broj: 13255
Poruke: 217
*.dialup.neobee.net.



Profil

icon Re: sql problem!!!!!!!26.03.2005. u 00:27 - pre 232 meseci
Citat:
StRiPy
Ne rece nam Bojann da li mu pomazu ovi SQL izrazi ... ?


Pa, kad sam video onu perverziju odustao sam od te zamisli ali mozda cu ova resenja primeniti neki drugi put
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: sql problem!!!!!!!26.03.2005. u 17:36 - pre 232 meseci
Pa jesi li onda nasao neko drugo rjesenje? Obavijesti nas u svakom slucaju, kakav query si na kraju slozio.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

CandyMan

Član broj: 3420
Poruke: 147



+49 Profil

icon Re: sql problem!!!!!!!27.03.2005. u 22:16 - pre 232 meseci
Ne verujem da može da ponudi neko bolje rešenje, ovo što smo mu ponudili je "najčistije" - nema ništa osim SQL-a.
Što se perverzija tiče, ako pogleda neke SQL teme videće da ovo i nije tako strašno.
Nisam ni znao da znam dok nisam prob'o!
 
Odgovor na temu

Bojann
Zrenjanin

Član broj: 13255
Poruke: 217
*.dialup.neobee.net.



Profil

icon Re: sql problem!!!!!!!27.03.2005. u 22:31 - pre 232 meseci
Pa mogao sam da biram tako da sam napravio upit drugog tipa:)
 
Odgovor na temu

[es] :: Baze podataka :: sql problem!!!!!!!

[ Pregleda: 4121 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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