【发布时间】:2021-04-05 06:35:54
【问题描述】:
所以,我有这个问题
SELECT nome_equipa,
count(id_golo) AS golos_marcados FROM equipa,golo
WHERE golo.equipa_id_equipa = id_equipa
GROUP BY golo.equipa_id_equipa, nome_equipa ORDER BY count(id_golo)DESC
输出这个表
然后我有这个其他查询
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
输出这个:
我要做的就是将两列并排放置,没有错误。
试过了
select nome_equipa, count(id_golo) as golos_marcados,
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, golo
where golo.equipa_id_equipa = id_equipa
group by nome_equipa
order by vitorias desc
但它返回了这个:
这是ER图:
【问题讨论】:
-
样本数据和逻辑解释真的很有帮助。
-
请添加每个表的架构,并尽量避免使用葡萄牙语名称作为表,使用全英文作为标准是一个好习惯。
标签: php sql postgresql