MySql returns AVG 不正确

MySql returns not correct AVG

Table:

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 上的 return 值不正确。 项目 2returns 135.77。 应该是150.00对吧?

另外,为什么结果是135.77?

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

http://sqlfiddle.com/#!9/034b1/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;

项目 "A" 的结果为 137.5,项目 "B"

的结果为 150