我掉进了 SQL 兔子洞,请帮帮我,我需要在没有 with 子句的情况下重写这个查询
with dept_total(dept_name, value) as
(select dept_name, sum(salary)
from instructor
group by dept_name),
dept_total_avg(value) as
(select avg(value)
from dept_total)
select dept_name
from dept_total, dept_total_avg
where dept_total.value >= dept_total_avg.value;
基本上,第一张表将所有基于部门的工资加起来。第二个表得到总和的平均值。我需要找到一种方法来挑选部门总数大于平均值的部门。
只要不使用 with 子句,它就可以用任何方式编写。我一直在考虑 - 选择 sum(salary)/count(salary) as dept_total_avg, dept_name from coach where dept_total_avg > all (select sum(salary), from coach) 按 dept_name 分组;
但它不起作用,现在我的大脑也不起作用。请帮忙。