Для подсчета количества объектов в каждой категории вам нужно написать SQL запрос с использованием агрегирующей функции COUNT и оператора GROUP BY. Вот пример запроса:
SELECT category_name, COUNT(*) AS count
FROM products
GROUP BY category_name;
Чтобы организовать фильтрацию товаров по множеству атрибутов в проекте магазина с использованием EAV модели, вам нужно будет создать соответствующие таблицы для атрибутов и их значений, и связать их с таблицей товаров. Затем вы можете использовать JOIN для объединения таблиц и WHERE для фильтрации по атрибутам.
Например, если у вас есть таблицы "products", "attributes" и "attribute_values", можно написать запрос, чтобы найти товары, у которых значение атрибута "Цвет" равно "Красный":
SELECT p.*
FROM products p
JOIN attribute_values av ON p.product_id = av.product_id
JOIN attributes a ON av.attribute_id = a.attribute_id
WHERE a.attribute_name = 'Цвет' AND av.value = 'Красный';
Это один из способов реализации фильтрации по множеству атрибутов. Однако следует учитывать, что использование EAV модели может быть неэффективным для выполнения сложных запросов из-за необходимости выполнения большого количества JOIN. Рекомендуется также рассмотреть возможность использования другой модели данных для оптимизации запросов.