Cześć,
Mam pewien problem z napisaniem zapytania które początkowo wydało mi się banalne.
Przykładowo tabela:
create table tabela (
id integer not null,
typ_zwierzecia integer not null,
liczba_zwierzat integer not null,
nazwa_schroniska varchar(50) not null,
unique(id)
);
Potrzebuję zapytania które zwróci mi informacje, które schronisko ma największą liczbę zwierząt gdzie typ_zwierzecia to np 10. Select ma pokazywać liczbę oraz nazwę schroniska.
Trzeba uwzględnić, że w kilku schroniskach może być dokładnie tyle samo zwierzaków o danym typie wtedy ma pokazać dokładnie dwa lub więcej rekordy. Należy mieć też na uwadze, że może być kilka wpisów dotyczących tego samego zwierzaka w tym samym schronisku, tak więc najpierw trzeba by dodać wartości z kolumny liczba_zwierzat dla tych samych zwierzaków w tych samych schroniskach.
Podobno da się to zrobić jednym większym selectem (z joinami podzapytaniami). Ja to zrobiłem najpierw robiąc sumę z liczby zwierzat grupując po nazwie schroniska. Później wyciągnąłem max z liczba_zwierzat i przypisałem do zmiennej. Następnie zrobiłem kolejne zapytanie gdzie znów zrobiłem grupowianie po nazwa_schroniska wykorzystując sumę jako funkcję agregującą i w having dałem wcześniej zapisany max
Pomoże ktoś? :)