[postgresql] Podwojne GROUP BY z roznymi warunkami
Cabra - 22-03-2006 00:06
[postgresql] Podwojne GROUP BY z roznymi warunkami
Witam,
mam taki problem: baza sklada sie z ponizszych pol:
id (int) | id_baner (int lub NULL) | id_zalogowany (int lub NULL) | data (date)
i teraz potrzebuje zapomoca zapytania wyciagnac dane, ile bylo wszystkich wejsc poprzez dany baner oraz ile bylo wejsci przez zalogowanych uzytkownikow.. sam pierwszy warunek udalo mi sie zrobic bez wiekszego klopotu zapomoca GROUP BY id_baner,natomiast nie wiem czy mozna a jezeli tak to jak wyciagnac dane dt. tego drugie warunku?
Pozdrawiam, Cabra
Marcin Balawejder - 22-03-2006 00:06
> bez wiekszego klopotu zapomoca GROUP BY id_baner,natomiast nie wiem czy > mozna a jezeli tak to jak wyciagnac dane dt. tego drugie warunku? >
Jednym selectem chcesz to zrobić ?
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
dipajcze - 22-03-2006 13:13
W jednym zapytaniu: - w postgresql: select (select count(id),id_banner from tabela group by 2) as bannery, (select count(id),id_zalogowany from tabela group by 2) as usery;
- w oracle: select (select count(id),id_banner from tabela group by 2) as bannery, (select count(id),id_zalogowany from tabela group by 2) as usery from dual;
hubert lubaczewski - 22-03-2006 13:13
Cabra wrote: > id (int) | id_baner (int lub NULL) | id_zalogowany (int lub NULL) | > data (date)
select id_baner, count(*) as wszystkich, sum( case when id_zalogowany is null then 1 else 0 end) as niezalogowanych from tabelka; ilosc zalogowanych uzyskasz juz po stronie aplikacji przez odejmowanie.
depesz
-- *------------------------------------------------------------------* najwspanialszą rzeczą jaką dało nam nowoczesne społeczeństwo, jest niesamowita wręcz łatwość unikania kontaktów z nim
Cabra - 27-03-2006 00:08
Racja, rozwiazanie jest super - bo proste i dobre :) tylko.... zawsze wyswietla mi 0 :( , a robie tak:
SELECT id_baner, SUM(CASE WHEN id_zalogowany = TRUE THEN 1 ELSE 0 END) AS zalogowani FROM tabela GROUP BY id_baner
Cabra - 27-03-2006 00:08
Przepraszam.... moja wina - cos nachrzanilem w bazie - poprawilem i juz jest ok.. jeszcze raz dzieki wielkie :)
Pozdrawiam, Cabra
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
zanotowane.pldoc.pisz.plpdf.pisz.plfelgiuzywane.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|