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

368
03 июля 2022, 17:10

Есть 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, тоже не помогает. Есть идеи?

READ ALSO
Как при группировке записей ограничить вывод

Как при группировке записей ограничить вывод

Подскажите, пожалуйста, варианты, как можно ограничить вывод при группировке по количеству записейНапример, у меня есть таблица вида:

286
C++ побайтовое считывание

C++ побайтовое считывание

Я пытаюсь считать каждый байт из файла в буфер и вывести его:

275
Текстурные швы (искажения) при наложении на сферу OpenGL

Текстурные швы (искажения) при наложении на сферу OpenGL

При наложении текстуры на сферу получаю искажение на полюсах (рис1), швы вдоль сферы особо не видны, но если убрать GL_REPEAT в

238