[英]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.