【发布时间】:2020-12-27 23:57:50
【问题描述】:
我知道这可能是基本的,但我不熟悉 SQL。 所以,我有这个查询:
select nome_equipa,
sum(case when (resultado_visitado = resultado_visitante) and jogo.equipa_id_equipa = id_equipa or (resultado_visitante = resultado_visitado) and jogo.equipa_id_equipa1 = id_equipa then 1 else 0 end ) as empates,
sum(case when (resultado_visitado > resultado_visitante) and jogo.equipa_id_equipa = id_equipa or (resultado_visitante > resultado_visitado) and jogo.equipa_id_equipa1 = id_equipa then 1 else 0 end ) as vitorias,
sum(case when (resultado_visitado < resultado_visitante) and jogo.equipa_id_equipa = id_equipa or (resultado_visitante < resultado_visitado) and jogo.equipa_id_equipa1 = id_equipa then 1 else 0 end ) as derrotas
from jogo, equipa
group by nome_equipa
order by vitorias desc;
输出这个:
所以,总和列不在我的数据库中,而是由 SQL 计算的。
这些列是团队的胜利、失败和平局的数量。现在我想显示每支球队的积分数。我认为这很容易,就像在选择中添加 (empates*1 + derrotas*0 + vitorias*3) as pontos 一样,但它不起作用。我认为这是因为我试图求和的列是计算出来的,而不是在数据库中。
有人可以帮我吗?
【问题讨论】:
标签: sql postgresql sum