我在Postgresql DB中有一个表。它有3个字段:Emp_Name,Dept&年龄。我需要明智地显示员工部门的平均年龄。我需要在结果集中显示所有3个字段。以下是输入和预期输出:
这是SQL小提琴:http://sqlfiddle.com/#!15/7c4cf
如何在PostgreSQL中显示预期结果?
答案 0 :(得分:1)
您可以在dept上使用group by并使用avg
和string_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 强>