找到所有平均结果的最大值

时间:2016-07-07 05:48:53

标签: mysql

我有一张表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查询获得每个部门的最高平均值(百分比)和每个部门的最低平均值(百分比)。

非常感谢。

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT DeptID, EmpName, MAX(percentage),MIN(percentage)
    FROM employeedetails
    GROUP BY deptid;

输出:SEE DEMO HERE

注意:您不应该存储'%' char在数据库中,可能会误导Query。

更新1 :根据您在回答中的评论您希望获得部门百分比的平均值,然后您希望获得百分比部门的最大值和最小值。您可以借助GROUP_CONCATUNION函数

来实现此目的

试试此查询

(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