MySQL SELECT *和Percentage

时间:2013-04-11 11:09:00

标签: mysql

与MySQL有点不同,并且不够熟练,无法理解我试图整理的语句的逻辑。

我有这个问题;

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

哪个工作正常可以返回所有记录总和的胜利%,但我希望按行返回结果?

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

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

返回的结果类似于;

Manager | Win%

Arsene Wenger | 57.24%

Alex Ferguson | 48.02%

我错过了什么?

3 个答案:

答案 0 :(得分: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'

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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