Как посчитать количество элементов COUNT(*) если есть HAVING и GROUP BY?

Есть 3 таблицы product, product_to_category, product_to_filter

отношение таблицы product - один к многим

Задача состоит в том что нужно выбрать товары из категории, с учётом фильтров и количества их совпадения

Этот запрос есть, и успешно отрабатывает:

select 'product'.'product_id' from 'product' 
inner join 'product_to_category' on 'product'.'product_id' = 'product_to_category'.'product_id'
inner join 'product_to_filter' on 'product'.'product_id' = 'product_to_filter'.'product_id' 
where 'product_to_filter'.'filter_id' in (3,9) 
and 'product'.'status' = 1 
and 'product_to_category'.'category_id' = 8 
group by 'product'.'product_id' 
having COUNT('product_to_filter'.'filter_id') = 2 
order by 'product'.'sort_order' asc 
limit 10 offset 0

Теперь нужно посчитать количество товаров этого запроса. Но столкнулся с проблемой, из-за group by приходит несколько строк с количеством 1. Без group by не могу так как есть having COUNT. Пробовал с флагом with rollup, тоже не помогает. Есть идеи?


Ответы (0 шт):