如何在 MySQL 中将 count(*) 除以 count(*)
How to divide count(*) by count(*) in MySQL
我正在努力从一个计数除以一个计数中找出多行中的最大值。我试图在我的数据库中找到哪支球队的教练与球员的比例最高。我创建了两个视图,A 包含属性 player_name 和 team_name1(1 添加到属性末尾以避免外键冲突)和 B 包含 coach_name 和 team_name.
理想情况下,我希望 select team_name 具有通过除法
找到的最大比率
select count(*) from A group by team_name
和
select count(*) from B group by team_name1
我之前使用过 ASC, limit 1,0 来实现类似的查询,但我仍然不知道如何将该语法转换为这个特定问题。任何帮助将不胜感激。我是 MySQL 的新手,只是习惯了来龙去脉。
以下是您可能需要也可能不需要的有关我的关系的其他信息:
plays_for(team_name1,player_name)两个属性都是主键
coaches_for(team_name,coach_name)两个属性都是主键
简单地把它们分成 SELECT
statemenst
基本上你可以使用这个,只要它只返回一个结果
SELECT
(SELECT
COUNT(*)
FROM
A
GROUP BY team_name) / (SELECT
COUNT(*)
FROM
B
GROUP BY team_name1)
要获得你所需要的所有球队的所有比率
SELECTteam_name,countA/countB为分
从
(SELECT team_name1,
计数()计数A
从
一种
分组 team_name) t1
内部联接
(SELECT team_name1,
COUNT() 数B
从
乙
分组 team_name1) t2 在 t1.team_name1 = t2.team_name1
ORDER BY 划分 DESC
获得与队名的最高比例
SELECT team_name, countA/countB as divided
FROM
(SELECT team_name1,
COUNT(*) countA
FROM
A
GROUP BY team_name) t1
INNER JOIN
(SELECT team_name1,
COUNT(*) countB
FROM
B
GROUP BY team_name1) t2 ON t1.team_name1 = t2.team_name1
ORDER BY divided DESC
LIMIT 1
我正在努力从一个计数除以一个计数中找出多行中的最大值。我试图在我的数据库中找到哪支球队的教练与球员的比例最高。我创建了两个视图,A 包含属性 player_name 和 team_name1(1 添加到属性末尾以避免外键冲突)和 B 包含 coach_name 和 team_name.
理想情况下,我希望 select team_name 具有通过除法
找到的最大比率select count(*) from A group by team_name
和
select count(*) from B group by team_name1
我之前使用过 ASC, limit 1,0 来实现类似的查询,但我仍然不知道如何将该语法转换为这个特定问题。任何帮助将不胜感激。我是 MySQL 的新手,只是习惯了来龙去脉。
以下是您可能需要也可能不需要的有关我的关系的其他信息:
plays_for(team_name1,player_name)两个属性都是主键
coaches_for(team_name,coach_name)两个属性都是主键
简单地把它们分成 SELECT
statemenst
基本上你可以使用这个,只要它只返回一个结果
SELECT
(SELECT
COUNT(*)
FROM
A
GROUP BY team_name) / (SELECT
COUNT(*)
FROM
B
GROUP BY team_name1)
要获得你所需要的所有球队的所有比率 SELECTteam_name,countA/countB为分 从 (SELECT team_name1, 计数()计数A 从 一种 分组 team_name) t1 内部联接 (SELECT team_name1, COUNT() 数B 从 乙 分组 team_name1) t2 在 t1.team_name1 = t2.team_name1 ORDER BY 划分 DESC
获得与队名的最高比例
SELECT team_name, countA/countB as divided
FROM
(SELECT team_name1,
COUNT(*) countA
FROM
A
GROUP BY team_name) t1
INNER JOIN
(SELECT team_name1,
COUNT(*) countB
FROM
B
GROUP BY team_name1) t2 ON t1.team_name1 = t2.team_name1
ORDER BY divided DESC
LIMIT 1