我有一张表EmployeeDetails
DeptID | EmpName | workDate | percentage
------------------------------------------
dev Sam 06/07/16 10%
dev Smith 07/07/16 20%
HR Denis 06/07/16 5%
HR Danny 07/07/16 3%
IT David 06/07/16 15%
IT John 07/07/16 20%
您能否帮我找一个sql查询获得每个部门的最高平均值(百分比)和每个部门的最低平均值(百分比)。
非常感谢。
答案 0 :(得分:1)
试试这个:
SELECT DeptID, EmpName, MAX(percentage),MIN(percentage)
FROM employeedetails
GROUP BY deptid;
注意:您不应该存储'%' char在数据库中,可能会误导Query。
更新1 :根据您在回答中的评论您希望获得部门百分比的平均值,然后您希望获得百分比部门的最大值和最小值。您可以借助GROUP_CONCAT
和UNION
函数
试试此查询:
(SELECT DeptID,
GROUP_CONCAT(EmpName SEPARATOR ',') AS Employees,
AVG(percentage) AS Max_Min_AvgValue
FROM employeedetails
GROUP BY deptid
ORDER BY percentage DESC LIMIT 1)
UNION
(SELECT DeptID,
GROUP_CONCAT(EmpName SEPARATOR ','),
AVG(percentage)
FROM employeedetails
GROUP BY deptid
ORDER BY percentage ASC LIMIT 1);
输出:{1}}用于Update1
答案 1 :(得分:0)
这个怎么样。
SELECT MAX(percentage) as maximum, MIN(percentage) as minimum
FROM EmployeeDetails
GROUP BY DeptId
答案 2 :(得分:0)
select *,max(percentage),min(percentage)
from department
group by deptid