表:
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