【发布时间】:2019-04-06 06:09:57
【问题描述】:
我掉进了 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) 作为 dept_total_avg, dept_name 来自导师 其中 dept_total_avg > all(选择总和(工资), 来自导师) 按部门名称分组;
但它不起作用,现在我的大脑也不起作用。请帮忙。
【问题讨论】:
标签: mysql sql subquery with-clause