[英]sql count where result is greater than certain number
以下查询将汇总每次比赛的目标:
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
是否可以计算多少个结果大于一定数目?
在条件上使用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
,因此对条件的结果求和就可以得到它为true的次数。
我选择> 5
作为条件。 您可以使用任何所需的阈值。
表格名称“ Team Match Table是正确的”吗? 由于sql不允许您使用空格创建表名。
以完美的格式查询它。
从match_所在的team_match_table中选择sum(goals)(从匹配表中选择hometeam_id所在的id(从team_table那里选择team_name ='Aberdeen'的id或awayteam_id in(从team_table那里选择team_name ='Aberdeen')的ID)));
除了给出条件外,您还可以在表中使用特定的值来得出理想的结果。
只需列出您拥有的表,以及其公共列
尝试;
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放在返回的列中,以便您可以判断出哪些比赛具有要返回的目标数。 它还会告诉您该比赛中的进球数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.