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

Jedna tabela vise COUNT-a

[es] :: MySQL :: Jedna tabela vise COUNT-a

[ Pregleda: 2940 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Vlatko Zdrale
Vlatko Zdrale
Chicago, USA

Član broj: 155036
Poruke: 102
*.177.123.201.ip.anet.com.

Sajt: www.zemoon.com


+1 Profil

icon Jedna tabela vise COUNT-a11.10.2007. u 17:17 - pre 201 meseci
Malo sam zardjao sa SQL-om, a trazio sam na forumima i ne mogu da nadjem neko elegantno resenje. Problem je sledeci.
Imam tabelu kao npr ovu:
Code:

user surveyID  IP
1    AAAAAA    888
2    BBBBBBB   444
3    AAAAAA    333
4    AAAAAA    888
5    BBBBBBB   888


e sad trebao bi mi izlaz kao na primer ovaj:
Code:

surveyID Total   (Total IP=888) (Total IP<>888)
AAAAAA  3              2                1
BBBBBBB 2              1                1


tj treba da dodam (Total IP=888) i (Total IP<>888) u ovaj upit:
Code:

SELECT surveyID, COUNT(*) AS Total
FROM surveys
GROUP BY surveyID
 
Odgovor na temu

Milan Andjelkovic
Product Manager
Tegus Medical
Beograd

Član broj: 4476
Poruke: 3281
*.eunet.yu.

Sajt: www.linkedin.com/in/milan..


+8 Profil

icon Re: Jedna tabela vise COUNT-a11.10.2007. u 18:27 - pre 201 meseci
Pošto sam i ja malo zardjao, nisam uspeo da smislim nista sto bi dalo takav output a da se ne koriste neki view-ovi, subqueries i slicno (posto pretpostavljam da ti to nije elegantno). Ali sam smislio nešto drugo, što bi ti možda rešilo problem:
Code:

SELECT surveyID,COUNT(*) AS Total
FROM surveys
GROUP BY surveyID,(IP=888);


Ovako dobijaš po jedan red za svaki surveyID, pri čemu je prvi kada IP (ili TotalIP? - naveo si različito na dva mesta) nije jednak 888, a drugi kada jeste. Konkretno, ovako nešto:

mysql> SELECT surveyID,COUNT(*) AS Total FROM survey GROUP BY surveyID,(IP=888);
+----------+-------+
| surveyID | Total |
+----------+-------+
| AAAAA | 1 |
| AAAAA | 2 |
| BBBBB | 1 |
| BBBBB | 1 |
+----------+-------+


Ili isto to, samo naznačeno šta je šta:
Code:

SELECT surveyID,(IP=888) AS IP_JEDNAKO_888,COUNT(*) AS Total
FROM surveys
GROUP BY surveyID,IP_JEDNAKO_888



mysql> SELECT surveyID,(IP=888) AS IP_JEDNAKO_888,COUNT(*) AS Total FROM surveys GROUP BY surveyID,IP_JEDNAKO_888;
+----------+----------------+-------+
| surveyID | IP_JEDNAKO_888 | Total |
+----------+----------------+-------+
| AAAAA | 0 | 1 |
| AAAAA | 1 | 2 |
| BBBBB | 0 | 1 |
| BBBBB | 1 | 1 |
+----------+----------------+-------+


Jes' da nisi to tražio, ali možda ti odradi posao, a meni je bilo zanimljivo da smišljam ;)
ex.mangel
 
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: Jedna tabela vise COUNT-a11.10.2007. u 18:54 - pre 201 meseci
Code:
SELECT surveyID, COUNT(*) AS Total,
       SUM(CASE WHEN IP=888 THEN 1 ELSE 0 END) AS IP_EQ_888,
       SUM(CASE WHEN IP<>888 THEN 1 ELSE 0 END) AS IP_NE_888
  FROM surveys
 GROUP BY surveyID

Da li je ovo elegantno?

offtopic @ Milan Andjelkovic: Pomocu kog taga si dobio zelena slova na crnoj podlozi?
"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

Milan Andjelkovic
Product Manager
Tegus Medical
Beograd

Član broj: 4476
Poruke: 3281
*.eunet.yu.

Sajt: www.linkedin.com/in/milan..


+8 Profil

icon Re: Jedna tabela vise COUNT-a11.10.2007. u 19:07 - pre 201 meseci
[term]
ex.mangel
 
Odgovor na temu

Milan Andjelkovic
Product Manager
Tegus Medical
Beograd

Član broj: 4476
Poruke: 3281
*.eunet.yu.

Sajt: www.linkedin.com/in/milan..


+8 Profil

icon Re: Jedna tabela vise COUNT-a12.10.2007. u 09:42 - pre 201 meseci
Sta je sa resenjem koje je naveo chachka? Meni deluje prilično fino i sumnjam da može nešto bolje od toga da se napravi...
ex.mangel
 
Odgovor na temu

Vlatko Zdrale
Vlatko Zdrale
Chicago, USA

Član broj: 155036
Poruke: 102
*.177.123.201.ip.anet.com.

Sajt: www.zemoon.com


+1 Profil

icon Re: Jedna tabela vise COUNT-a12.10.2007. u 13:39 - pre 201 meseci
Odlicno resenje, hvala, to je bas ono sto mi treba. Izvinjavam se, nisam video taj post kad sam vec poceo da odgovaram.

[Ovu poruku je menjao Vlatko Zdrale dana 12.10.2007. u 22:42 GMT+1]
 
Odgovor na temu

[es] :: MySQL :: Jedna tabela vise COUNT-a

[ Pregleda: 2940 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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