--Zad 3
select id_gatunku, nazwa from rejestry join gatunki
using(id_gatunku) where trim(to_char(czas,'month'))='maj'
intersect
select id_gatunku, 'KARP' from rejestry join gatunki
using(id_gatunku) where trim(to_char(czas,'day'))='niedziela'
minus
select id_gatunku, nazwa from rejestry join gatunki
using(id_gatunku) group by id_gatunku, nazwa having count (*)>12;

--Zad 7
Select id_gatunku, nazwa  from gatunki 
minus
Select id_gatunku, nazwa  from rejestry join gatunki using(id_gatunku) group by id_gatunku, nazwa having count (*) > 7;

select id_gatunku, nazwa, (select count(*) from rejestry where id_gatunku = tab7.id_gatunku)liczba from
(Select id_gatunku, nazwa  from gatunki 
minus
Select id_gatunku, nazwa  from rejestry join gatunki using(id_gatunku) group by id_gatunku, nazwa having count (*) > 7)tab7;

select tab7.id_gatunku, tab7.nazwa, count(rej.id_gatunku)  from
(Select id_gatunku, nazwa  from gatunki 
minus
Select id_gatunku, nazwa  from rejestry join gatunki using(id_gatunku) group by id_gatunku, nazwa having count (*) > 7)tab7 
left join rejestry rej on(tab7.id_gatunku = rej.id_gatunku) group by tab7.id_gatunku, tab7.nazwa order by tab7.id_gatunku;

--Zad 16
Select id_gatunku, nazwa  from gatunki 
minus
Select id_gatunku, nazwa  from rejestry join gatunki using(id_gatunku) group by id_gatunku, nazwa having count (*) > 7;

select id_gatunku, nazwa, (select count(*) from rejestry where id_gatunku = tab7.id_gatunku)liczba from
(Select id_gatunku, nazwa  from gatunki 
minus
Select id_gatunku, nazwa  from rejestry join gatunki using(id_gatunku) group by id_gatunku, nazwa having count (*) > 7)tab7;

select tab7.id_gatunku, tab7.nazwa, count(rej.id_gatunku)  from
(Select id_gatunku, nazwa  from gatunki 
minus
Select id_gatunku, nazwa  from rejestry join gatunki using(id_gatunku) group by id_gatunku, nazwa having count (*) > 7)tab7 
left join rejestry rej on(tab7.id_gatunku = rej.id_gatunku) group by tab7.id_gatunku, tab7.nazwa order by tab7.id_gatunku;

--Zad 19
select id_gatunku, nazwa case
(select count(distinct id_okregu) from rejestry join lowiska using(id_lowiska)
where id_gatunku=ga.id_gatunku and id_okregu like 'PZW%')
when 0 then 'niezlowiono'
when 1 then '1 okreg'
when 2 then '2 okregi'
when 3 then '3 okregi'
else 'wiecej okregow' end info
from gatunki ga;

select count(distinct id_okregu) from rejestry join lowiska using(id_lowiska)
where id_gatunku=1 and id_okregu like 'PZW%';
