na zajęciach przerabiamy sql-a, a dokładniej "pobieranie danych z bazy" - mamy dbvisualizera i ćwiczymy selecty.
Nadszedł czas napisania sprawozdania i pojawił się duży problem z jednym zadaniem.
Treść brzmi mniej więcej tak "Grupujac podaj liczbę osób znających 1, 2, 3, języki."
Ja doszedłem do czegoś takiego, ale nie jest to poprawne rozwiązanie gdyż podaje klos (klucz osoby) i ilość znanych języków.
Kod
select o.klos, count(z.klos) from osoby as o
join znajezyki as z on o.klos=z.klos
where z.klos in
(select klos from znajezyki)
group by o.klos having count(z.klos)>=1 and count(z.klos)<=3
order by o.klos
join znajezyki as z on o.klos=z.klos
where z.klos in
(select klos from znajezyki)
group by o.klos having count(z.klos)>=1 and count(z.klos)<=3
order by o.klos
Jak to przerobić, abym otrzymał jednowierszową tabelę wyglądającą mniej więcej tak:
Kod
|liczba os znaj. 1 język|liczba os znaj. 2 język|liczba os znaj. 3 język|
A to fragment bazy
