Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL复杂计数问题_Mysql_Count - Fatal编程技术网

MySQL复杂计数问题

MySQL复杂计数问题,mysql,count,Mysql,Count,我想问一个问题,如果一支足球队赢了一场主场比赛,例如利物浦足球队,那么在一列中会加上1,同样的,如果输了,那将是AwayWins,平局将是“平局” 下面的查询非常有效,它只是比较目标分数并在适当的位置添加1 SELECT *, IF(max(`goalsHomeTeam`)>`awayTeamName`,'1','') as HomeWins, IF(max(`goalsHomeTeam`)<`awayTeamName`,'1','') as AwayWins,

我想问一个问题,如果一支足球队赢了一场主场比赛,例如利物浦足球队,那么在一列中会加上1,同样的,如果输了,那将是AwayWins,平局将是“平局”

下面的查询非常有效,它只是比较目标分数并在适当的位置添加1

SELECT *,
    IF(max(`goalsHomeTeam`)>`awayTeamName`,'1','') as HomeWins,
    IF(max(`goalsHomeTeam`)<`awayTeamName`,'1','') as AwayWins,
    IF(max(`goalsHomeTeam`)=`awayTeamName`,'1','') as Draw
FROM fixtures 
WHERE `homeTeamName` = 'Liverpool FC'
GROUP BY fixtures_id
LIMIT 10
这看起来像:

但是,我真正想显示的只是3个字段:

全垒打、AwayWins和Draw

然后对每个方框进行计数,例如根据上面的图片HomeWins:9、AwayWins:0和Draw:0


我尝试过添加一些简单的东西,比如在IF的周围加上一个计数,但是没有成功。有什么建议吗?

您可以这样做:

Select SUM(T1.HomeWins), SUM(T1.AwayWins), SUM(T1.Draw)
From (#your query here#) AS T1

这是一个简单的例子:

您可以尝试这个查询

SELECT 
    SUM(IF(`goalsHomeTeam` > `awayTeamName`,1,0)) AS HomeWins,
    SUM(IF(`goalsHomeTeam` < `awayTeamName`,1,0)) AS AwayWins,
    SUM(IF(`goalsHomeTeam` = `awayTeamName`,1,0)) AS Draw
FROM fixtures 
WHERE `homeTeamName` = 'Liverpool FC'
GROUP BY `homeTeamName`

这会把它们加起来不算,但也因为它们不是真正的列,所以我得到以下错误未知列。您现在需要实际求和,并尝试将别名添加到suquery中