MySQL - Optymalizacja zapytania - wybór z warunkiem ilości wystąpień

0

Załóżmy sytuację w której mamy tabelę w której zapisane są dane o produkcie, jego kategorii oraz stanu magazynowego

produkt kat stan
1 1 5
2 1 4
3 2 7
4 2 1
5 2 3
... ... ...

Czy jest jakiś sposób, aby jednym zapytaniem wybrać kategorie, do których jest przypisanych więcej niż X produktów (dodatkowo tylko te które są na stanie magazynu)?
Na tą chwilę robię łopatologicznie, tzn. robię listę kategorii, następnie serią zapytań sprawdzam ilość przypisanych produktów oraz stan magazynowy. by ostatecznie wybrać te, które mają więcej niż X produktów. Problem pojawia się w momencie gdy tych kategorii są setki/tysiące, gdyż generuje to setki/tysiące zapytań do bazy. Czy jest sposób by ogarnąć to jednym zapytaniem?

2

select kat from tabela where stan > 0 group by kat having count(*) > 4

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