[Oracle] group by ?

0

hej
mam dwie tabele

TABELA1
id_miasta
nazwa

TABELA2
id_miasta
sklepik

i chce wyciagnac nazwe miasta i ILOŚĆ wystapien w TABELA 2. jak to zrobic ??

Bo z jednej tabeli to latwe
select count(id_miasta) as ile from TABELA2 group by id_miasta czy podobnie ale jak wyciagnac jeszcze "nazwa" jak robie JOINa to count() jest suma wszystkich
pozdro

0

hehe podstawowka sie klania, ale juz nie bede taki, dam gotowca, bo to za proste zeby sie rozpisywac inaczej :)

select T1.nazwa, isnull(T2.C, 0) as ilosc from Tabela1 T1
left join (select id_miasta, count(*) as C from Tabela2 group by id_miasta) as T2 on T1.id_miasta = T2.id_miasta

0

Co to za podstawówka była? W oracle nie ma żadnego isnull :)

Rozwiązanie mogło by wyglądać np tak(nie pokazuje miast które nie mają żadnych sklepów):

select 
t1.nazwa, count(*) c
from tabela1 t1 inner join tabela2 t2 on t2.id_miasta = t1.id_miasta
group by t1.nazwa

lub tak(pokazuje też miasta bez sklepów):

select 
t1.nazwa, count(t2.sklepik) c
from tabela1 t1 left outer join tabela2 t2 on t2.id_miasta = t1.id_miasta
group by t1.nazwa

pzdr

1 użytkowników online, w tym zalogowanych: 0, gości: 1