以下查询将总结每场比赛的目标:
SELECT
SUM(Goals)
FROM `Team Match Table`
WHERE Match_Id IN (SELECT ID FROM Match Table
WHERE HomeTeam_ID = (SELECT ID FROM `Team Table` WHERE `Team Name` = 'Aberdeen')
OR AwayTeam_ID = (SELECT ID FROM `Team Table` WHERE `Team Name` = 'Aberdeen'))
GROUP by Match_Id
是否可以计算出有多少结果大于某个数字?
答案 0 :(得分:0)
在条件上使用SUM()
为您提供计数:
SELECT
SUM(Goals) total_goals,
SUM(Goals > 5) over_5_goals_count
FROM `Team Match Table`
WHERE Match_Id IN (SELECT ID FROM Match Table
WHERE HomeTeam_ID = (SELECT ID FROM `Team Table` WHERE `Team Name` = 'Aberdeen')
OR AwayTeam_ID = (SELECT ID FROM `Team Table` WHERE `Team Name` = 'Aberdeen'))
GROUP by Match_Id
这有效(仅限mysql),因为mysql将true
视为1
而将false
视为0
,因此对条件的结果求和可以得到这是真实的次数。
我选择了> 5
作为条件。您可以使用任何您想要的阈值。
答案 1 :(得分:0)
表名'团队匹配表是否正确'?由于sql不允许您创建带空格的表名。
以完美的格式查询。
从team_match_table中选择sum(目标),其中match_is in(从匹配表中选择id,其中hometeam_id in(从team_table中选择id,其中team_name ='Aberdeen'or awayteam_id in(从team_table中选择id,其中team_name ='Aberdeen'))) ;
您可以使用表格中的特定值来获得完美的结果,而不是给出条件。
只需列出您拥有的表格,以及其常用列
答案 2 :(得分:0)
尝试;
SELECT Match_id, SUM(`Goals`)
FROM `Team Match Table`
WHERE `Match_Id` IN (SELECT `ID` FROM `Match Table`
WHERE `HomeTeam_ID` = (SELECT `ID` FROM `Team Table`
WHERE `Team Name` = 'Aberdeen')
OR `AwayTeam_ID` = (SELECT `ID` FROM `Team Table`
WHERE `Team Name` = 'Aberdeen'))
GROUP by `Match_Id`
HAVING SUM('Goals') >= DesiredNumber --Change DesiredNumber to a numeric value you wish to filter by
我已将Match_id放在返回的列中,以便您可以判断哪些匹配项具有您想要返回的目标数。它还会告诉你该比赛中的进球数