Mysql 从单个表返回多个计数

Mysql 从单个表返回多个计数,mysql,sql,select,count,case,Mysql,Sql,Select,Count,Case,我有一张足球赛程表,格式如下 date date primary key homescore int(4) awayscore int(4) 数据以以下格式存储 DATE | HOMESCORE | AWAYSCORE ------------------------------------------ 01-01-2014 | 1 | 0 08-01-2014 | 2 | 1 15-01-2

我有一张足球赛程表,格式如下

date date primary key
homescore int(4)
awayscore int(4)
数据以以下格式存储

DATE        |   HOMESCORE    |  AWAYSCORE
------------------------------------------
01-01-2014  |       1        |      0
08-01-2014  |       2        |      1
15-01-2014  |       1        |      1
22-01-2014  |       3        |      2
29-01-2014  |       0        |      0
06-02-2014  |       1        |      3  
等等

我想运行一个查询来返回赢、输和取款的总数

select count(*) as won from fixtures where homescore > awayscore;
select count(*) as lostfrom fixtures where homescore < awayscore;
select count(*) as drawnfrom fixtures where homescore = awayscore;
请有人给我一些帮助。

选择SUM(homescore>awayscore)作为赢款,
SELECT SUM(homescore > awayscore) AS won,
   SUM(homescore < awayscore) AS lost,
   SUM(homescore = awayscore) AS tie
FROM ...
损失金额(homescore
选择SUM(homescore>awayscore)作为赢的布尔结果,
损失金额(homescore
的布尔结果:

选择SUM(当homescore>awayscore时为1,否则为0结束)WonCount,
总和(当homescore

选择SUM(当homescore>awayscore时为1,否则为0结束)WonCount,
总和(当homescore
我也遇到了同样的问题,根据这些答案,我制作了一个SQL FIDLE,您可以自己尝试


这是一个人为的“父母”和“孩子”的例子,但它演示了为联接表获取“统计信息”的行为。谢谢你的回答,马克B

我也遇到了同样的问题,根据这些答案,我制作了一个SQL FIDLE,您可以自己尝试


这是一个人为的“父母”和“孩子”的例子,但它演示了为联接表获取“统计信息”的行为。谢谢你的回答,马克B

回答得很好,这正是我想要的。谢谢。回答得很好,这正是我想要的。谢谢。如果你愿意,请在你的答案中发布相关部分,就像其他答案一样。它帮助人们以后找到这个答案。谢谢如果你愿意的话,请把你的答案中的相关部分和其他答案一样贴出来。它帮助人们以后找到这个答案。谢谢
SELECT SUM(homescore > awayscore) AS won,
   SUM(homescore < awayscore) AS lost,
   SUM(homescore = awayscore) AS tie
FROM ...
SELECT SUM(CASE WHEN homescore > awayscore THEN 1 ELSE 0 END) WonCount,
       SUM(CASE WHEN homescore < awayscore THEN 1 ELSE 0 END) LostCount,
       SUM(CASE WHEN homescore = awayscore THEN 1 ELSE 0 END) TieCount
FROM fixtures