Предыстория:
Делаю пет проект магазина с возможностью фильтрации товаров по десяткам атрибутов. Я понятия не имею как это должно делаться и детальной информации мне найти не удалось, поэтому делал так как получилось. Создал базу данных следующей структуры (как позже выяснилось это называется EAV модель)
Мне необходимо создать запрос получающий все атрибуты конкретной категории со всеми имеющимся опциями для этого атрибута и количеством товаров для каждой опции каждого атрибута.
Первую половину я получил
Теперь мне надо получить третью колонку с количеством товаров и не знаю как мне это правильно написать.
Обновление:
У меня получился следующий sql
SELECT a.id as attr_id, a.alias as attr_alias, a.name as attr_name, o.id as option_id, o.alias as option_alias, o.value as option_value, COUNT(pp.product_id) AS prod_count
FROM "Product" p
JOIN "Product_property" pp on pp.product_id = p.id
JOIN "Attribute" a ON pp.attribute_alias = a.alias
JOIN "Option" o ON pp.option_id = o.id
where p.cat_id = 1
GROUP BY a.id, a.name, a.alias, o.id, o.alias, o.value