表:

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

最佳答案

不清楚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

09-25 20:19