MySql返回不正确的AVG

时间:2015-04-24 03:58:03

标签: mysql sql average

表格

Column               |       Type
-------------------------------------------
Project_ID           |       INT AI
-------------------------------------------
Rejection_Rate       |       double
-------------------------------------------

数据:

Proj Name                 |       AVG Value
-------------------------------------------
Project1                  |         100
-------------------------------------------
Project2                  |         200
-------------------------------------------
Project2                  |         100
-------------------------------------------

MySql查询:

SELECT concat(Project_ID,'-',Project_Name) as `Proj Name`,
ROUND(Avg(Rejection_Rate),2) as `AVG Value`
FROM project
GROUP BY Project_ID
ORDER BY Project_ID

结果:

Proj Name                 |       AVG Value
-------------------------------------------
Project1                  |         100.00
-------------------------------------------
Project2                  |         135.77
-------------------------------------------

以上是实际数据。

AVG的返回值不正确。 Project2 返回 135.77 。 它应该 150.00 对吗?

另外,为什么结果是135.77?

我也尝试了一些可能性,为什么我最终得到了135.77,但没有得到相同的结果。

http://sqlfiddle.com/#!9/034b1/1

1 个答案:

答案 0 :(得分:1)

不清楚表格中Rejection_Rate的位置。

与此相比......

CREATE TABLE Nums (
  ProjName VARCHAR(20),
  ProjVal DOUBLE
);

INSERT INTO Nums
VALUES ("A", 100), ("A", 175), ("B", 200), ("B", 100);

SELECT DISTINCT ProjName, Round(Avg(ProjVal),2) Average
FROM Nums
GROUP BY ProjName;

项目结果为137.5" A"项目150和B"