Как объединить значение в SQL

#mysql #sql #group-by #sum

#mysql #sql #группировать по #сумма

Вопрос:

Я хочу объединить значение в одной таблице

 select sum(if(dep_id=2,point,0)) as totalpoint,
       sum(if(dep_id=3,point,0)) as totalpoint
from user_info
  

введите описание изображения здесь

Это моя таблица:

введите описание изображения здесь

Я хочу получить такой результат:

введите описание изображения здесь

Я не знаю, как это исправить. Пожалуйста, помогите мне

Комментарии:

1. У вас должны быть разные псевдонимы столбцов.

2. Поместите свой код в свой вопрос, а не изображения. Приветствия

Ответ №1:

Вы, кажется, хотите агрегации:

 select dep_id, sum(point) totalpoints
from user_info
where dep_id in (2, 3)
group by dep_id
  

Если в таблице отсутствуют dep_id значения, и вы все еще хотите, чтобы они были в результирующем наборе со 0 значением, тогда это немного отличается. Можно перечислить значения в производной таблице, а затем привести исходную таблицу с объединением:

 select d.dep_id, coalesce(sum(ui.point), 0) totalpoints
from (select 2 dep_id union all select 3) d
left join user_info ui on ui.dep_id = d.dep_id
group by d.dep_id
  

Ответ №2:

Вы также можете использовать ОБЪЕДИНЕНИЕ :

 select dep_id, sum(point) as totalpoint
from user_info
where dept_id = 2
union 
select dep_id, sum(point) as totalpoint
from user_info
where dept_id = 3