Zapytanie sql - zliczanie wizyt dla kazdego miesiaca.

0

Siemka, mam problem z jednym zapytaniem, a mianowicie potrzebuje zliczać wizyty w danej placówce przychodni z podziałem od stycznia do grudnia. Oto zapytanie które stworzyłem:

select extract(year from t.data_) as rok, count(*) as sumka, extract(month from data_) as miesiac
from adresy a, wizyty w, przychodnia p, terminy t
where w.id_przychodni = p.id_przychodni
and p.id_adresu = a.id_adresu
and t.id_terminu = w.id_terminu
and a.miejscowosc = 'Rzeszow'
and extract(year from t.data_) = 2019
group by grouping sets((miesiac, rok))
order by rok desc;

Jak widac w załączniku zlicza wizyty tylko dla tych miesiacow w których wizyta była. A chciałbym zeby pokazywało od stycznia do grudnia, jezeli nie bylo np w styczniu to oczywiscie null, i nwm jak to rozwiązac.

W zalaczniku rowniez dołączam schemat erd.

2
with x as(
select extract(year from t.data) as rok, count(*) as sumka, extract(month from data) as miesiac
from adresy a, wizyty w, przychodnia p, terminy t
where w.id_przychodni = p.id_przychodni
and p.id_adresu = a.id_adresu
and t.id_terminu = w.idterminu
and a.miejscowosc = 'Rzeszow'
and extract(year from t.data) = 2019
group by grouping sets((miesiac, rok))
)
, m(rok,miesiac) as
(select 2019,generate_series(1,12))
select m.rok, m.miesiac, x.sumka from m left join x using(rok, miesiac)
order by 1,2

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