你可以試試這個..
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,在每一樣本數據表和預期的結果? –