你可以试试这个..
select MAX(avg_age) as max_avg, SUBSTRING_INDEX(MAX(avg_age_dep),'##',-1) as max_age_dep from
(
SELECT
AVG(userage) as avg_age, CONCAT(AVG(userage), CONCAT('##' ,department_name)) as avg_age_dep
FROM user_data
inner join user_department_branch
on user_data.userid = user_department_branch.userid
inner join department_branch
on department_branch.dpmbid = user_department_branch.dpmbid
inner join department
on department.dpmid = department_branch.dpmid
group by department_branch.dpmid
) tab_avg_age_by_dep
;
我已经做了ipothesys的部门名称放在一个“部门” anagraphical表中的一些变化。所以,它需要投入加入表中加,后来我改变您的查询,最终如果部门名称放在(但我没有事情,所以)在branch_department表,你可以在现场和治疗添加到您的查询
更新
在辅助的说,如果你wanto避免相同的平均情况下,您可以furtherly做单义以这种方式追加ROWNUM ID的平均值:
select MAX(avg_age) as max_avg, SUBSTRING_INDEX(MAX(avg_age_dep),'##',-1) as max_age_dep from
(
SELECT
AVG(userage) as avg_age, CONCAT(AVG(userage), CONCAT('##', CONCAT(@rownum:[email protected]+1, CONCAT('##' ,department_name)))) as avg_age_dep
FROM user_data
inner join user_department_branch
on user_data.userid = user_department_branch.userid
inner join department_branch
on department_branch.dpmbid = user_department_branch.dpmbid
inner join department
on department.dpmid = department_branch.dpmid
,(SELECT @rownum:=0) r
group by department_branch.dpmid
) tab_avg_age_by_dep
;
你可以发布你的表defintions,在每一样本数据表和预期的结果? –