如何解决SQL - 结合案例时间和分组依据 - 需要帮助
我正在处理我的第一个工会案例,但我不明白应该如何解决以下问题。 将感谢大师的帮助:)
查询:)
select Team,sum(Scored) as Scored,sum(Received) as Received
from
(select HomeTeam as Team,(case when HomeScore > 1 then sum(HomeScore) else 0 end) as Scored
from Matches as a
group by HomeTeam,HomeScore
Union
select AwayTeam as Team,( case when AwayScore>1 then sum(AwayScore) else 0 end) as Received
from Matches
group by AwayTeam,AwayScore) DERIVED GROUP BY Team
错误:(
Invalid column name 'Received'.
Desired Results (我已经进行到一半了,我的查询没有包含所有字段)
谢谢各位大佬
更新的查询
select Team,(case when HomeScore > 0 then sum(HomeScore) else 0 end) as Scored,( case when AwayScore>0 then sum(AwayScore) else 0 end) as Received
from Matches
group by HomeTeam,HomeScore,AwayScore
Union all
select AwayTeam as Team,( case when AwayScore>0 then sum(AwayScore) else 0 end) as Received,(case when HomeScore > 0 then sum(HomeScore) else 0 end) as Scored
from Matches
group by AwayTeam,AwayScore,HomeScore) DERIVED GROUP BY Team
仍然,Scored 和 received 的总和不正确
解决方法
我认为您可以将查询更新为 -
select Team,sum(Scored) as Scored,sum(Received) as Received
from (select HomeTeam as Team,SUM(case when HomeScore > 0 then HomeScore else 0 end) as Scored,NULL -- For sum(Received)
from Matches as a
group by HomeTeam
Union
select AwayTeam,NULL,-- For sum(Scored)
SUM(case when AwayScore>0 then AwayScore else 0 end) as Received
from Matches
group by AwayTeam) DERIVED
GROUP BY Team
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。