【发布时间】:2021-12-14 03:47:43
【问题描述】:
考虑查询:
查找总工资大于所有部门总工资平均值的所有部门
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 构造的情况下重写此查询。
查询基于由 Korth 的数据库系统概念提供的大学模式。我假设我只需要考虑讲师表即可找到查询的答案。
讲师(ID、姓名、部门名称、薪水)
我可以找到所有部门总工资的平均值
SELECT AVG(salary) GROUP BY dept_name;
然后我输了。我没有找到继续的方法。
我找到了that。但我正在寻找更多解释,因为我无法从这个链接中理解它。
感谢您的帮助。
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(差不多 30 年前),不鼓励使用它
标签: sql database with-statement