#mysql #sql
#mysql #sql
Вопрос:
Я хотел бы суммировать в совершенно новом столбце результат матча nba (nba database)
, например: Если puntos_local > puntos_visitante
столбец puntos
будет увеличен на 3
. Если результат равен, то суммируйте только 1
SELECT `equipo_local`,
(case
when `puntos_local` > `puntos_visitante`
then puntos=puntos 3
when `puntos_local` = `puntos_visitante`
then puntos=puntos 1
end) AS puntos
FROM `partidos`
WHERE temporada LIKE "07/08"
-- GROUP BY `equipo_local`
ORDER BY puntos DESC, partidos.equipo_local
Я также пробовал что-то вроде:
SELECT `equipo_local`,
Sum(Case ( When `puntos_local` > `puntos_visitante` Then puntos=puntos 3 Else 0 End)) As puntos
,Sum(Case ( When `puntos_local` = `puntos_visitante` Then puntos=puntos 1 Else 0 End)) As puntos
FROM `partidos`
WHERE temporada LIKE "07/08"
-- GROUP BY `equipo_local`
ORDER BY puntos DESC, partidos.equipo_local
https://imgur.com/a/ijPCEU9
Я хотел бы, чтобы общий балл суммировался по каждому совпадению.
Если puntos_local
> puntos_visitante
, то столбец puntos
будет puntos= puntos 3
Если это ничья, я бы хотел только суммировать 1
.
И в качестве окончательного результата я хотел бы получить общую оценку сезона. Ty
Ответ №1:
SELECT `equipo_local`,
Sum(puntos
(Case When `puntos_local` > `puntos_visitante` Then 3 Else 0 End)
) As puntos_x,
,Sum(puntos
(Case When `puntos_local` = `puntos_visitante` Then 1 Else 0 End)
) As puntos_y
FROM `partidos`
WHERE temporada LIKE "07/08"
-- GROUP BY `equipo_local`
ORDER BY puntos DESC, partidos.equipo_local
Ответ №2:
Вы можете попробовать это
SELECT equipo_local,
SUM(case
when puntos_local > puntos_visitante
then 3
when puntos_local = puntos_visitante
then 1
else 0
end) AS puntos
FROM partidos
WHERE temporada LIKE "07/08"
GROUP BY equipo_local
ORDER BY puntos DESC, partidos.equipo_local
Ответ №3:
я думаю, вам нужно обновление
update partidos
set puntos= case when puntos_local>puntos_visitante then puntos 3
when puntos_local=puntos_visitante then puntos 1
else puntos end
Комментарии:
1. проблема в том, что у меня нет столбца с именем puntos. Но я хочу создать его для отображения результата, который я хочу. Я пытался посмотреть, смогу ли я сделать это, физически не создавая его в базе данных. 🙂
2. @jose9988 поделитесь данными ваших таблиц и ожидаемым результатом, о котором идет речь
Ответ №4:
ВЫБЕРИТЕ equipo_local
, SUM((случай, когда puntos_local
> puntos_visitante
затем 3, когда puntos_local
= puntos_visitante
затем 1 конец)) КАК puntos
ИЗ partidos
ГДЕ временные ЗНАЧЕНИЯ, ПОДОБНЫЕ «07/08», ГРУППИРУЮТСЯ В equipo_local ПОРЯДКЕ С помощью puntos DESC, partidos.equipo_local