我有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
我的数据库结构是。
我的桌子是
但我想要这样。
请帮助我。
答案 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表中的总数是您想要的总数。这似乎是一个合理的假设,但如果某些员工没有部门或某些员工在多个部门,则可能不准确。在这种情况下,您只需要在子查询中重复join
到department
。