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