Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
Sql 从一组选定的2个统一列中统计实例_Sql - Fatal编程技术网

Sql 从一组选定的2个统一列中统计实例

Sql 从一组选定的2个统一列中统计实例,sql,Sql,假设我有一张叫做“比赛”的桌子,在那里我从一场足球比赛中救出了两支球队 ------------------------- | home_club | away_club | ------------------------- | | | ------------------------- 我有一个查询,返回该表中的所有俱乐部,包括主场俱乐部和客场俱乐部,通过联盟: SELECT home_club AS clubs FROM matches UNION

假设我有一张叫做“比赛”的桌子,在那里我从一场足球比赛中救出了两支球队

-------------------------
| home_club | away_club |
-------------------------
|           |           |
-------------------------
我有一个查询,返回该表中的所有俱乐部,包括主场俱乐部和客场俱乐部,通过联盟:

SELECT home_club AS clubs FROM matches UNION SELECT away_club FROM matches
现在我有了一个名为“俱乐部”的结果集,我想统计一下每个俱乐部在“比赛”表中出现的次数。我该怎么做呢?

试试下面的方法

select sum(count) as Matches, Club from
(select count(*) as count, home_club as Club from matches group by home_club
union all
select count(*) as count, away_club as Club from matches group by away_club ) a
group by a.clubs

如果您想知道每个字段在
匹配项
表中出现了多少次,那么您需要去掉子查询中的
联合
union
将删除重复项

以下是如何获得计数:

select club, count(*) as NumAppears
from (SELECT home_club AS club FROM matches
      UNION ALL
      SELECT away_club FROM matches 
     ) m
group by club;

注意,
UNION
被替换为
UNION ALL

我认为这一个只计算他们在“俱乐部”结果集中的实例数,而不计算在匹配表中的实例数。每行返回1。看看将
UNION
更改为
UNION All
(以防止删除重复的俱乐部名称)是否奏效。是的,我的意思是,不知怎么的,我忘了。
select club, count(*) as NumAppears
from (SELECT home_club AS club FROM matches
      UNION ALL
      SELECT away_club FROM matches 
     ) m
group by club;