gpt4 book ai didi

mysql - SQL 对获奖者进行计数并包括 0 个获奖者

转载 作者:行者123 更新时间:2023-11-29 09:30:47 25 4
gpt4 key购买 nike

我的查询有问题。我最近刚开始使用SQL。在下面的第一个表中,我想计算获胜最多的球队的数量,并包括零胜的球队。表名称以红色突出显示。

TABLE NAMES

我希望我的查询结果看起来像我附加的第二张图片,或者像这样

Phenix  2
StarWar 1
Strack 1
Serious 0
Apolo 0
APTX 0
Poki 0

Final result

到目前为止我最好的查询是:

   SELECT t1.Team_Name
, COUNT(winner) AS TotalWins
FROM result r
LEFT JOIN team_1 t1
ON r.Team1_ID = t1.Team1_ID
GROUP BY winner

UNION

SELECT t2.Team_Name
, COUNT(distinct winner) AS TotalWins
FROM result r
LEFT JOIN team_2 t2
ON r.Team2_ID = t2.Team2_ID
GROUP BY Winner
ORDER BY TotalWins DESC;

我得到的结果不包括零胜的球队,它只是为所有球队加 1。

最佳答案

在加入结果表之前先合并您的team表,然后您可以使用sum()函数来获取总胜利

select t1.Team_Name, sum(case when coalesce(t2.battle_no, '') = '' then 0 else 1 end) as TotalWins
from (select Team_Name, team1_id as id from team_1
union all
select Team_Name, team1_id as id from team_1) t1
left join result t2 on t2.Team2_ID = t1.team1_id or t2.Team1_ID = t1.team1_id

关于mysql - SQL 对获奖者进行计数并包括 0 个获奖者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58797139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com