Mysql 将两个子查询的结果彼此相除

Mysql 将两个子查询的结果彼此相除,mysql,group-by,Mysql,Group By,我看到的大多数问题似乎都是对输出为1个单一值的子查询执行操作 我只进行了两个查询。第一个是每个俱乐部的足球运动员人数 SELECT COUNT(*) as count FROM player_info i GROUP BY i.club ORDER BY i.club; 输出 club count Arsenal 60 Bournemouth 52 club count Arsenal 5 Bournemouth

我看到的大多数问题似乎都是对输出为1个单一值的子查询执行操作

我只进行了两个查询。第一个是每个俱乐部的足球运动员人数

SELECT COUNT(*) as count
FROM player_info i
GROUP BY i.club
ORDER BY i.club;         
输出

club        count
Arsenal       60
Bournemouth   52
club        count
Arsenal       5
Bournemouth   7
club        count
Arsenal       5/60
Bournemouth   7/52
第二个是每个俱乐部的英国足球运动员的数量

SELECT COUNT(*) as count
FROM player_info i
WHERE i.region = 1 
GROUP BY i.club
ORDER BY i.club;
输出

club        count
Arsenal       60
Bournemouth   52
club        count
Arsenal       5
Bournemouth   7
club        count
Arsenal       5/60
Bournemouth   7/52
我如何划分它们以得到一个百分比?换句话说,

输出

club        count
Arsenal       60
Bournemouth   52
club        count
Arsenal       5
Bournemouth   7
club        count
Arsenal       5/60
Bournemouth   7/52
到目前为止,我已经尝试使用联接,并将上述代码复制粘贴到一个大的SELECT()中,但错误是“子查询返回的行数超过1行。”


“SELECT”开头出现一些语法错误。

条件聚合:

SELECT i.club, AVG(i.region = 1) AS percentage
FROM player_info i
GROUP BY i.club
ORDER BY i.club;

例如,请参见编辑。因为我按俱乐部添加了行顺序,因此两个输出的值将相互对应。谢谢,解决方案比我想象的要简单得多!然而,我仍然想从我做错的事情中吸取教训。你能指出我在问题中做错了什么吗?你发布的查询在语法上是无效的。其中一个错误是:
SELECT i.club,COUNT(*),x.COUNT/y.COUNT
后面应该跟一个FROM子句,并且在FROM子句之后应该有第一个子查询与第二个子查询交叉连接。但所有这些都是不必要的。我想借此机会问另一个相关的小问题,因为我认为我没有理由再写一篇文章。如果我通过查询
COUNT(*)
查找每个俱乐部的球员人数,为什么
COUNT(I.region=1)
查找每个俱乐部的所有英国球员人数不起作用?我不得不使用一个
SUM(当I.region=1,然后1,否则0结束时)
I.region=1
返回1(真)或0(假),因此count(I.region=1)将同时计算1和0,因为count()不计算空值。如果我理解正确,您是说
count
计算行数,不管它们是1还是0,对吗?在这种情况下,我的另一个问题是,您是否有更简洁的方式来查询我想要的内容,而不是我上面写的
SUM(case…
查询?我觉得可以改进,但不确定如何改进。