需要明智地选择员工部门的平均年龄

时间:2017-02-11 15:45:18

标签: postgresql select group-by average

我在Postgresql DB中有一个表。它有3个字段:Emp_Name,Dept&年龄。我需要明智地显示员工部门的平均年龄。我需要在结果集中显示所有3个字段。以下是输入和预期输出:

enter image description here

这是SQL小提琴:http://sqlfiddle.com/#!15/7c4cf

如何在PostgreSQL中显示预期结果?

2 个答案:

答案 0 :(得分:1)

您可以在dept上使用group by并使用avgstring_agg聚合函数来获得所需的结果:

select
    string_agg(Emp_Name, ',') Emp_Name,
    Dept,
    avg(Age) Average_age
from test1
group by Dept;

答案 1 :(得分:1)

您可以使用string_agg功能来整合员工姓名,使用avg来获取平均年龄:

SELECT   STRING_AGG(emp_name, ','), dept, AVG(age)
FROM     test1
GROUP BY dept

<强> SQLFiddle