如何在mysql中已经和的别名列的总和

时间:2015-02-14 15:05:03

标签: mysql sum alias

我有mysql查询。

select d.department_id,d.department_name,sum(e.salary) AS amount
from department d inner join employee e on d.department_id=e.department_id
group by d.department_id,d.department_name

我使用此查询获得总计。

select d.department_id,d.department_name,sum(e.salary) AS amount
from department d inner join employee e on d.department_id=e.department_id
group by d.department_id,d.department_name WITH ROLLUP

但是我希望通过总和列别名这样的总计这个

select d.department_id,d.department_name,sum(e.salary) AS amount, sum(SELECT(amount)) AS grand_total
from department d inner join employee e on d.department_id=e.department_id
group by d.department_id,d.department_name

我的数据库结构是。

enter image description here

我的桌子是

enter image description here

但我想要这样。

enter image description here

请帮助我。

1 个答案:

答案 0 :(得分:0)

如果您想要其他列,请使用join或子查询:

select d.department_id, d.department_name, sum(e.salary) AS amount,
       tot.salary
from department d inner join
     employee e
     on d.department_id = e.department_id inner join
     (select sum(e.salary) as salary from employee) tot
group by d.department_id, d.department_name, tot.salary;

注意:这假设employee表中的总数是您想要的总数。这似乎是一个合理的假设,但如果某些员工没有部门或某些员工在多个部门,则可能不准确。在这种情况下,您只需要在子查询中重复joindepartment