MySQL_ Как суммировать значения в каждом из двух столбцов, которые имеют одинаковые значения в другом столбце?

0

Я очень новичок в MySQL и знаю только об основных запросах CRUD.

Изображение 174551

Значения в host_team и guest_team представляют уникальный идентификатор команды.

То, что я хотел бы сделать, - суммировать все цели независимо от того, в какой колонке принадлежит эта команда.

Таким образом, результат должен быть [10:0, 20:4, 30:3, 40:0, 50:4].

Мой подход суммирует значение в host_goals и guest_golas, если значение host_team и guest_team одинаковое.

Поскольку я очень не разбираюсь в MySQL, я понятия не имею, с чего начать.

Какой был бы лучший подход в этом случае?

  • 0
    Можете ли вы разместить таблицу в блоке кода, а не изображение?
  • 1
    Кроме того, ни в коем случае я не вижу команду 40, которая упоминается в вашем результате.
Показать ещё 1 комментарий
Теги:
database
join

1 ответ

3
Лучший ответ

Мы можем сделать это с помощью союза:

SELECT team, SUM(goals) AS goals
FROM
(
    SELECT host_team AS team, host_goals AS goals FROM yourTable
    UNION ALL
    SELECT guest_team, guest_goals FROM yourTable
) t
GROUP BY team;
  • 1
    Я делаю это неправильно, пытаясь определить db-скрипку и сравнивать его результаты, а не просто запускать запрос как ответ как можно скорее?
  • 1
    @FrankerZ Нет, ты прав. Почему-то я подумал, что проверил пару команд и убедил себя, что результат имеет смысл. Это не так, но я думаю, что мой ответ - то, что ОП действительно хочет здесь.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню