1

有点像 MySQL 的新手,并且不够熟练,无法理解我试图放在一起的语句的逻辑。

我有这个查询;

SELECT FORMAT(SUM(won/total*100),2) AS PCT FROM table_name WHERE Status='Current'

哪个可以很好地返回所有记录总和的 win%,但我希望按行返回结果?

基本上我想要实现的是每使用 的 win% SELECT *,但我不能将 SELECT * 与计算百分比结合使用。

或者我可以并且可能逻辑错误,我不确定。

返回的结果类似于;

Manager | Win%

Arsene Wenger | 57.24%

Alex Ferguson | 48.02%

我错过了什么?

4

3 回答 3

2

试试这个查询:

SELECT Manager,FORMAT(SUM(won/total*100),2) AS PCT 
FROM table_name 
WHERE Status='Current'
GROUP BY Manager

如果你想要每一

SELECT Manager,FORMAT((won/total*100),2) AS PCT 
FROM table_name 
WHERE Status='Current'
于 2013-04-11T11:12:57.553 回答
1

你错过了一个GROUP BY声明。或者,如果您不想返回所有
行 的 %-age ,则必须删除,因为这会将返回的所有行汇总到总和中。SUM

于 2013-04-11T11:12:10.760 回答
1

您必须按人名对行进行分组,例如

SELECT FORMAT(SUM(won/total*100),2) AS PCT FROM table_name WHERE Status='Current' group by manager ;

于 2013-04-11T11:12:47.870 回答