@lindou

Выбрать по условию, а то что не найдено указать как ноль?

Добрый вечер!
Поправьте суть вопроса, если не верное выразился.

Как можно одним запросом, получить список записей, что бы отображались все записи но кол-во было только у той записи, которая подходит под условие?

select c.color_id, c.color_name, count(p.product_id) as total
from color as c
left join product as p on c.color_id = p.color_id
where p.color_id = 2
group by c.color_id


В данном примере, результатом будет
{
    color_id = 2
    color_name = red
    total = 47
}


Но хотелось бы вывести и остальные цвета, только с total = 0 соответственно.
Как это можно реализовать?
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@baitarakhov
https://www.db-fiddle.com/f/emqonUSGZKx36N7jNVN1Ew/2
select c.color_id, c.color_name,
       count(p.product_id) as total,
       count(case when c.color_name = 'red' then 1 end) as red_cnt
from color as c
         left join product as p on c.color_id = p.color_id
group by c.color_id, c.color_name;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы