簡體   English   中英

sql count結果大於特定數目

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM