--- 1 select imie, nazwisko, coalesce(avg(kwota),0) from Klient left join Transakcja on id = kupujacy group by id; W starych SQL można dołożyć imie i nazwisko do kolumn grupowania. --- 2 select imie, nazwisko from Klient join Transakcja on id = kupujacy group by id having count(distinct sprzedajacy) > 5; --- 3 create view obecni (kto, zkim) as select kupujacy, sprzedajacy from transakcja union select sprzedajacy, kupujacy from transakcja; create view drobni (kto) as select kto from obecni group by kto having count(*) < 3; select * from transakcja where kupujacy in (select kto from drobni) and sprzedajacy in (select kto from drobni); --- 4 select id, imie, nazwisko from obecni join klient on kto = id group by id having count(distinct zkim) = (select count(*) from klient) - 1; --- 5 create view czworki as select * from transakcja t1 where (kupujacy,sprzedajacy,data) in (select kupujacy,sprzedajacy,data from transakcja where kupujacy = t1.kupujacy order by kwota desc limit 4); select id, imie || ' ' || nazwisko as kto from czworki join klient on id = kupujacy group by id having sum(kwota) > 10000;