VerbAlexVlad
@VerbAlexVlad
Программист-любитель

Как получить таблицу из двух таблиц с почти одинаковыми столбцами?

Поясняю:

Есть таблицы "Категории" и "Продукты"
5c3a2f3b77974013177447.png

нужно показать все категории, и количество товаров в каждой, в зависимости от пола. И все одним запросом.
5c3a2fcd97eb9998761764.png

т.е он считает сколько мужских и женских товаров в данной категории, и записывает в соответствующие столбцы
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
kawabanga
@kawabanga
select category_id, category_name, gender, count(id) from product
inner join category on category.id=product.category_id 
group by category_id, gender


Получится построчно, (категория, пол, кол-во). это самый просто способ получить ваши данные. при сортировке по категории, можно сделать финальную таблицу как у вас.

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

выбрать таблицу с группировками только для М (категория, имя категории, кол-во, 0) где пол=M
UNION
выбрать таблицу с группировками только для Ж (категория, имя категории,0, кол-во) где пол=Ж
Ответ написан
Комментировать
@x_shader
Oracle & Coffee
select
 c.id
,c.name
,sum(case p.sex when 'м' then 1 else 0 end) as male_count
,sum(case p.sex when 'ж' then 1 else 0 end) as female_count
from category c
left join product p on p.category_id = c.id
group by c.id, c.name
order by c.id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы