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

Potrebna (mala) pomoc oko SQL upita

[es] :: Baze podataka :: Potrebna (mala) pomoc oko SQL upita

[ Pregleda: 2688 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ppavlovic
Pavlovic Petar
Izvođač radova na sajtovima

Član broj: 4306
Poruke: 139
*.smin.sezampro.yu.

Sajt: www.pavlovicpetar.com


+1 Profil

icon Potrebna (mala) pomoc oko SQL upita19.06.2005. u 16:16 - pre 229 meseci
Pravim neki sistem za dopisivanje i imam mali problem...
Primer tabele je:

Code:

message_id | sender_id | recipient_id | subject |
1  | 1 | 2 | neki subject
2  | 1 | 2 | neki subject
3  | 1 | 3 | neki subject
4  | 1 | 3 | neki subject
5  | 1 | 3 | neki subject
6  | 2 | 1 | neki subject
7  | 2 | 1 | neki subject
8  | 3 | 1 | neki subject
9  | 3 | 1 | neki subject
10 | 3 | 2 | neki subject


U tabeli sender_id je ID# korisnika koji je poslao poruku, a recipient_id je ID# korisnika koji je primio poruku. message_id i subject su nebitni za razmatranje problema.

Treba mi upit koji ce gledano iz perspektive sender_id=1 dati sledece rezultate:
Code:

recipient_id | broj_medjusobnih_poruka
2 | 4
3 | 5

a iz perspektive sender_id=2
Code:

recipient_id | broj_medjusobnih_poruka
1 | 4
3 | 1


U prevodu, uz svaki recipient_id treba da stoji ukupan broj poruka koji je razmenjen izmedju dva korisnika. Da ga s' oprostenjem ne tupim mnogo, rezultat treba da bude isti kao na GMail-u gde pored svakog e-maila stoji ukupan broj medjusobno razmenjenih poruka.

Hvala.
 
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: Potrebna (mala) pomoc oko SQL upita19.06.2005. u 16:41 - pre 229 meseci
Code:

SELECT recipient_id, COUNT(*) AS Broj_razmijenjenih_poruka
FROM tabela
WHERE sender_id = 1
GROUP BY sender_id, recipient_id;

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

ppavlovic
Pavlovic Petar
Izvođač radova na sajtovima

Član broj: 4306
Poruke: 139
*.smin.sezampro.yu.

Sajt: www.pavlovicpetar.com


+1 Profil

icon Re: Potrebna (mala) pomoc oko SQL upita19.06.2005. u 19:28 - pre 229 meseci
Hvala na pomoci, ali mi gornji upit vraca samo koliko je poruka korisnik poslao drugim korisnicima, ali ne uzima u obzir broj primljenih poruka od tih korisnika. Elem, malo sam 'izmajmunisao' resenje i dobio sledeci upit koji resava problem:

Code:

SELECT m.recipient_id, sum(m.num_messages) as num_messages FROM
(
SELECT 1, recipient_id, sender_id, COUNT(*) AS num_messages
FROM messages
WHERE sender_id = 1
GROUP BY sender_id, recipient_id
UNION
SELECT 2, sender_id, recipient_id, COUNT(*) AS num_messages
FROM messages
WHERE recipient_id = 1
GROUP BY sender_id, recipient_id
) m
GROUP BY recipient_id

 
Odgovor na temu

[es] :: Baze podataka :: Potrebna (mala) pomoc oko SQL upita

[ Pregleda: 2688 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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