case内计数

p8h8hvxi  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(266)

有人知道为什么这会给出一个接近“from”的错误:语法错误吗?

SELECT voetbal_team_id_a,
CASE
    WHEN (COUNT(omschrijving) FROM gebeurtenis WHERE wedstrijd.voetbal_team_id_a = gebeurtenis.voetbal_team_id AND gebeurtenis.omschrijving = 'goal' AND wedstrijd.wedstrijd_id = gebeurtenis.wedstrijd_id) > 
         (COUNT(omschrijving) FROM gebeurtenis WHERE wedstrijd.voetbal_team_id_b = gebeurtenis.voetbal_team_id AND gebeurtenis.omschrijving = 'goal' AND wedstrijd.wedstrijd_id = gebeurtenis.wedstrijd_id) THEN 3
    ELSE 0
END AS wins
FROM wedstrijd

INNER JOIN gebeurtenis
ON wedstrijd.wedstrijd_id = gebeurtenis.wedstrijd_id

我想创建这个:

但我不知道当你用计数的时候这个案子是怎么运作的。
计数本身应该有效,这是我的另一个问题:

SELECT wedstrijd.wedstrijd_id,
        (SELECT COUNT(omschrijving) FROM gebeurtenis WHERE wedstrijd.voetbal_team_id_a = gebeurtenis.voetbal_team_id AND gebeurtenis.omschrijving = 'goal' AND wedstrijd_id = wedstrijd.wedstrijd_id) AS Goals_A,
        (SELECT COUNT(omschrijving) FROM gebeurtenis WHERE wedstrijd.voetbal_team_id_b = gebeurtenis.voetbal_team_id AND gebeurtenis.omschrijving = 'goal' AND wedstrijd_id = wedstrijd.wedstrijd_id) AS Goals_B
FROM gebeurtenis
INNER JOIN wedstrijd
ON gebeurtenis.wedstrijd_id = wedstrijd.wedstrijd_id
GROUP BY wedstrijd.wedstrijd_id

这将产生以下结果:

noj0wjuj

noj0wjuj1#

case ... from 不是有效的sql。
你可以用它做你想做的事 union all 和聚合:

select team, sum(win) win
from (
    select hometeam teamp, (homescore > awayscore) win from matches
    union all select awayteam, (homescore < awayscore) from matches
) t
group by team
8mmmxcuj

8mmmxcuj2#

我想创造这个

SELECT hometeam AS team, homescore > awayscore AS wins
FROM matches

将给出显示的结果。一点都不需要。

相关问题